我的用户和 root 访问权限有限。我怎样才能让该用户能够删除 root 拥有的文件?
我在 : 中添加了以下行/etc/sudoers.d/john
:john ALL=(ALL) NOPASSWD:/var/opt/OV/tmp/*
但我无法在 /var/opt/OV/tmp 下执行 touch 或 rm 命令。我还需要什么额外的东西?
我不知道语法或应该如何准确设置,因此用户 john 只能在 /var/opt/OV/tmp/ 下执行 rm 或 touch 。我正在思考某处
Cmnd_Alias REMOVE=/bin/rm Cmnd_Alias CREATE=/bin/touch john ALL = (ALL) NOPASSWD: REMOVE, CREATE, /var/opt/OV/tmp
。让我知道这是否可行或者我是否需要添加/删除某些内容。不,chmod&chown 命令不会有帮助,因为 /var/opt/OV/tmp 下的文件归 root 所有。
答案1
您可以授予普通用户删除 root 拥有的文件的权限,只需授予他们对父目录的写访问权限即可。不需要sudo
。
在示例中,您希望用户能够从 中删除文件/var/log
,因此您可以更改该目录的权限,以便您的用户可以创建(并因此删除)文件。
您可以选择通过创建一个仅包含您的用户的新组,并更改目录的组所有权以进行匹配,然后添加组写入权限来执行此操作。
chgrp johnsgroup /var/log
chmod g+w /var/log
请注意,我尚未测试此建议,并且其他应用程序可能已经需要组写访问权限才能将文件写入目录。正如他们所说,YMMV。