在Ubuntu可以根覆盖任何文件?

我在Ubuntu 10.04.02。 我认为,当使用sudo将以root身份执行命令。 但是,作为根,我不能写我自己的文件。 它是否正确?

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$ 

在这里输入图像说明

sudo只适用于命令运行; 您的追加>>以当前用户身份发生。

最好的解决办法:运行“sudo program | sudo tee -a output_file> / dev / null”

tee写入文件和标准输出,> ​​/ dev / null将输出redirect到/ dev / null(只是丢弃它),-a选项告诉tee追加到文件(如>>确实),而不是覆盖文件>确实)。

首先用sudo运行一个简单的命令,这样密码就被caching了,否则你会在同一行上得到两个密码提示,并且在能够继续之前需要回答这两个密码提示。