了解 sudoer:

ran*_*psp 5 shell sudo chmod

我有一个 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)