很简单的测试来了解sudo

时间:2013-12-18 15:28:07

标签: bash permissions sudo

我允许用户代表www-data sudo ALL。

USERALIAS ALL=(www-data) ALL

然而,这两次执行有不同的结果:

$ sudo -uwww-data touch /tmp/test
$ sudo -uwww-data echo "anothertest" > /tmp/test2

猜猜谁拥有每个结果文件?

ls -l /tmp/test*
-rw-r--r-- 1 www-data www-data 0 dic 18 16:21 /tmp/test
-rw-r--r-- 1 user   user   5 dic 18 16:22 /tmp/test2

为什么?

1 个答案:

答案 0 :(得分:2)

在第二个示例中,用户www-data执行了命令

echo "anothertest"

并且user将命令的输出重定向到文件/tmp/test2。这可以解释(第二)案例中的文件所有权。在第一个中,www-data创建了文件/tmp/test

目前尚不清楚您的期望是什么,但如果您希望/tmp/test2/拥有www-data,请执行shell命令:

sudo -uwww-data sh -c 'echo "anothertest" > /tmp/test2'