在 Ubuntu 中 root 可以覆盖任何文件吗?

在 Ubuntu 中 root 可以覆盖任何文件吗?

我在使用 Ubuntu 10.04.02。我以为使用 sudo 会以 root 身份执行命令。但在这里,以 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$




在此处输入图片描述

答案1

sudo仅适用于命令运行;您的附加操作>>以当前用户身份发生。

答案2

最佳解决方案:运行“sudo program|sudo tee -a output_file >/dev/null”

tee 写入文件和标准输出,>/dev/null 将输出重定向到 /dev/null(只是丢弃它)并且 -a 选项告诉 tee 将内容附加到文件(如 >> 所做的那样)而不是覆盖文件(如 > 所做的那样)。

首先使用 sudo 运行一个简单的命令,这样密码就会被缓存,因为否则您会在同一行上收到两个密码提示,并且需要回答两个密码提示才能继续。

相关内容