我有一个 Unix 脚本,它创建一个临时日志文件,比如tempfl.log. 创建此文件时,它具有权限rw-r--r--。
有一条线
chmod 0440 /etc/sudoers tempfl.log 2>&1
Run Code Online (Sandbox Code Playgroud)
但是当脚本完成后,权限更改为r--r--r--但应该是rw-r--r--. 如果我将行更改为
chmod 0644 /etc/sudoers tempfl.log
Run Code Online (Sandbox Code Playgroud)
权限是正确的,tempfl.log但它会引发错误说:
sudo: /usr/local/etc/sudoers 是模式 0644,应该是 0440
我不明白 sudoers 在做什么,出了什么问题。
小智 5
您的脚本正在按照您的要求执行操作:
chmod 0440 /etc/sudoers tempfl.log
Run Code Online (Sandbox Code Playgroud)
将适用r--r-----于这两个文件。
sudoers除非您正在编写管理脚本,否则您真的不应该摆弄文件,即使这样,权限也应该单独存在,因为这有助于保护您的系统。该sudo程序本身会检查其配置文件的权限,并警告你(因为你已经看到的)。听这个。它显然比你更了解:-)
您确定您不只是尝试在 下运行脚本的某些部分sudo,例如:
sudo chmod 0440 tempfl.log 2>&1
Run Code Online (Sandbox Code Playgroud)
如果没有,并且您确实想修改这两个文件(但具有不同的权限,请使用两个单独的命令:
chmod 0440 /etc/sudoers 2>&1
chmod 0644 tempfl.log 2>&1
Run Code Online (Sandbox Code Playgroud)