我有一个 Unix 脚本,它创建一个临时日志文件,例如tempfl.log
.创建此文件后,它具有权限rw-r--r--
。
有一条线
chmod 0440 /etc/sudoers tempfl.log 2>&1
但是,当脚本完成后,权限将更改为r--r--r--
但它应该是rw-r--r--
。如果我将线路更改为
chmod 0644 /etc/sudoers tempfl.log
权限是正确的,tempfl.log
但它会抛出错误:
sudo: /usr/local/etc/sudoers 模式为 0644,应该是 0440
我不明白 sudoers 在做什么以及出了什么问题。
答案1
你的脚本正在做确切地你告诉它做什么:
chmod 0440 /etc/sudoers tempfl.log
将适用r--r-----
于这两个文件。
你真的不应该摆弄该sudoers
文件,除非你正在编写管理脚本,即使这样,权限也应该保留,因为这有助于保护你的系统。程序sudo
本身会检查其配置文件的权限并警告您(如您所见)。听这个。它显然比你更了解:-)
您确定您不只是尝试在 下运行脚本的某些部分sudo
,如下所示:
sudo chmod 0440 tempfl.log 2>&1
如果没有,并且您确实想要修改这两个文件(但具有不同的权限,请使用两个单独的命令:
chmod 0440 /etc/sudoers 2>&1
chmod 0644 tempfl.log 2>&1
答案2
您的脚本正在更改 2 个文件 /etc/sudoers 和 tempfl.log 的权限。将命令分成两行,应该没问题。
答案3
当您写入时,它会将和chmod 0440 /etc/sudoers tempfl.log
的权限更改为 0440,这是错误的。/etc/sudoers
tempfl.log
当您写入时,它会将和chmod 0644 /etc/sudoers tempfl.log
的权限更改为 0644,这是错误的。/etc/sudoers
tempfl.log
您是否需要更改权限/etc/sudoers
?你真的想写吗chmod 0644 tempfl.log
?