sudo
aplica-se apenas ao comando run; seu acréscimo >>
ocorre como o usuário atual.
Eu estou no Ubuntu 10.04.02. Eu pensei que ao usar o sudo que executaria comandos como root. Mas aqui, como root, não consigo escrever no meu próprio arquivo. Está correto?
david@ubuntu:/var/www/system/paydaydebt/log$ ls -l
total 16
-rw-r--r-- 1 root root 32 2011-08-27 01:00 cron_daily.log
-rw-r--r-- 1 root root 5082 2011-08-27 20:45 cron_email.log
-rw-r--r-- 1 root root 429 2011-08-27 20:00 cron_hourly.log
david@ubuntu:/var/www/system/paydaydebt/log$ sudo date >> cron_email.log
-bash: cron_email.log: Permission denied
david@ubuntu:/var/www/system/paydaydebt/log$ sudo chmod 664 cron_email.log
david@ubuntu:/var/www/system/paydaydebt/log$ ls -l
total 16
-rw-r--r-- 1 root root 32 2011-08-27 01:00 cron_daily.log
-rw-rw-r-- 1 root root 5082 2011-08-27 20:45 cron_email.log
-rw-r--r-- 1 root root 429 2011-08-27 20:00 cron_hourly.log
david@ubuntu:/var/www/system/paydaydebt/log$ sudo date >> cron_email.log
-bash: cron_email.log: Permission denied
david@ubuntu:/var/www/system/paydaydebt/log$ sudo chmod 666 cron_email.log
david@ubuntu:/var/www/system/paydaydebt/log$ ls -l
total 16
-rw-r--r-- 1 root root 32 2011-08-27 01:00 cron_daily.log
-rw-rw-rw- 1 root root 5082 2011-08-27 20:45 cron_email.log
-rw-r--r-- 1 root root 429 2011-08-27 20:00 cron_hourly.log
david@ubuntu:/var/www/system/paydaydebt/log$ sudo date >> cron_email.log
david@ubuntu:/var/www/system/paydaydebt/log$ sudo chmod 644 cron_email.log
david@ubuntu:/var/www/system/paydaydebt/log$ ls -l
total 16
-rw-r--r-- 1 root root 32 2011-08-27 01:00 cron_daily.log
-rw-r--r-- 1 root root 5111 2011-08-27 20:47 cron_email.log
-rw-r--r-- 1 root root 429 2011-08-27 20:00 cron_hourly.log
david@ubuntu:/var/www/system/paydaydebt/log$ sudo date >> cron_email.log
-bash: cron_email.log: Permission denied
david@ubuntu:/var/www/system/paydaydebt/log$
Melhor solução: execute "programa sudo | sudo tee -a arquivo_de_saída > / dev / null"
tee escreve para arquivo e stdout, > / dev / null redireciona a saída para / dev / null (apenas descarta) e a opção -a diz ao tee para anexar ao arquivo (como > > faz) de sobrescrever o arquivo (como >).
execute um comando simples com sudo primeiro, para que a senha seja armazenada em cache, porque senão você recebe dois prompts de senha na mesma linha e precisa responder a ambos antes de poder continuar.
Tags sudo