Len*_*and -5 scripting php permissions sudo tmp
我想使用/etc/sudoers.d.
所以我做了以下事情:
visudo -f /etc/sudoers.d/99-php
Run Code Online (Sandbox Code Playgroud)
并输入此 sudo 规则:
www-data ALL = (root) NOPASSWD: /etc/my_script.sh
Run Code Online (Sandbox Code Playgroud)
在/etc/my_script.sh脚本中,我在/tmp再次删除它们之前创建了一个文件夹和几个文件。
去测试:
su www-data
/etc/my_script.sh
Run Code Online (Sandbox Code Playgroud)
这给了我很多这样的权限错误:
rm: cannot remove «/tmp/my_file.txt»: Access denied
Run Code Online (Sandbox Code Playgroud)
暗示我的脚本实际上根本没有以 root 身份运行。
那么我该怎么做才能让它发挥作用?
您必须使用sudo运行命令。
sudo /etc/my_script.sh
Run Code Online (Sandbox Code Playgroud)
编辑 suduoers 文件并不意味着脚本的每次调用都以 root 身份运行,只是如果调用正确,它们就可以这样做。
将 shell 脚本放在 /etc 中是否有意义是一个单独的问题。