这有效:
apache ALL=(ALL) NOPASSWD:ALL
但这不是:
apache ALL=(ALL) NOPASSWD:/var/log/maillog
它说:“ sudo:没有tty存在,也没有指定askpass程序。”
路径正确。我在这里想念什么吗?有什么想法吗?
之后添加空格NOPASSWD:
无法使其正常工作。我正在.sh
从PHP调用一个文件,该文件中包含以下内容:
#!/bin/sh
grep bounced /var/log/maillog
我在脚本和日志文件中都添加了一个路径,但是它不起作用。
sudoers线
apache ALL=(ALL) NOPASSWD:/var/log/maillog
允许apache
用户执行文件/var/log/maillog
。但是您的脚本会执行grep
,因此该行不适用。
Sudo通过命令工作。无法使用它来允许通过任何命令访问特定文件。您只需要允许该命令即可grep bounced /var/log/maillog
。但是,如果您只是想让apache
用户从/var/log/maillog
任何程序中进行读取,那么您应该做的就是将其添加apache
到该文件的访问控制列表中。
setfacl -m user:apache:r /var/log/maillog
由于日志轮换,每次重新创建文件时都需要执行此命令。这是使用最新版本的logrotate自动完成的。如果您的版本太旧,则将该命令作为postrotate
条目添加到您的logrotate配置中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句