我正在尝试编写一个用于监视/var/log/messages
文件的简单脚本。默认情况下,该文件不具有用户的读取权限,当我允许读取该文件时,我的脚本可以完美运行,但问题是每次我重新启动系统时该文件都会被重写,并且我的所有更改都会丢失。有没有办法更改其默认权限?
谢谢。
答案1
那里是不需要您使用的权限管理设置sudo
——您可以授予运行脚本的用户访问拥有/var/log/messages
(adm
,在我的笔记本电脑上)的组的权限。或者,NOPASSWD
在脚本的 sudoers 条目中使用,这样您就不必在脚本中存储密码。
如果你是真的决心让世界看到里面的东西/var/log/messages
(而且我会强烈建议不要这样做——因为那里面真的可以有私人的东西)那么将您的权限设置回默认值可能是logrotate
,因此请检查您的 logrotate 配置并找到执行轮换的节/var/log/messages
并进行更改。
答案2
如果你确实使用 sudo 授予访问权限,则需要小心适当限制访问范围。我建议在你的 sudoers 文件中使用类似以下内容:
scriptuser ALL = NOPASSWD: /bin/cat /var/log/messages
这将允许“scriptuser”无需输入密码即可执行所呈现的精确命令。
答案3
通常的解决方案是运行具有足够权限的监视脚本以便能够读取该文件。
这是因为/var/log/messages
权限是经过精心选择的,以隐藏意外出现在该日志文件中的任何敏感信息。