我正在使用Web界面(只能通过Intranet访问,而不能通过Internet访问)。 点击PHP页面上的button,Python脚本会执行一些操作,最后需要以root身份执行cp命令。
我通过不同的解决scheme进行了search,并决定采用build议为/ bin / cp命令提供无密码sudo权限的apache用户。 所以,我编辑sudoers文件给sudo访问到apache没有密码只是为了cp命令,它工作正常。 但是,第二天,我发现我添加的这一行本身就是缺失的。 我不知道是否有一些定期更新会覆盖sudoers文件。
请帮我找出解决这个问题的可能办法。
在我知道的任何发行版上没有自动化的过程。
要debugging这个,你应该做几件事:首先,检查最后修改的时间。 ( ls -l /etc/sudoers )作为一个自动化过程的一个大指针就是在一个小时内发生,比如在0200h。 你可以检查cron文件( /etc/crontab , /etc/crontab , /etc/crontab /etc/cron.{hourly,daily,monthly,weekly} /etc/cron.d/* , /etc/cron.{hourly,daily,monthly,weekly} , /etc/cron.d/* , /etc/cron.{hourly,daily,monthly,weekly} ),看看是不是正常的东西(或者所有东西)用于parsing和/或写入/etc/sudoers 。 最后,您可以检查根目录的~/.bash_history或向同事询问:也许其中一个从备份中恢复或意外覆盖您的更改。
为什么cp命令必须以root身份执行? 难道你不能调整你从/复制目录的所有权和权限,以便Apache用户可以执行没有root权限的副本?
注意:你不应该直接编辑sudoers文件。 这可能导致sudoers文件无法使用。 命令visudo应该用来操作sudoers条目,因为使用这个命令基本上语法检查文件,以防止错误的文件入口,并locking其他人编辑文件。 我想知道这是否可能是问题的一部分,因为有人做了一个visudo,并由于某种原因踢出了入口。