我想做一个脚本,可以在根用户上运行screen中的一些东西。这必须通过PHP system()函数完成,因此我需要找出方法sudo的根和传递一个密码,所有使用php。
发布于 2011-03-31 18:50:03
如果你真的需要从PHP sudo (不推荐),最好只允许特定的命令,而不需要密码。
例如,如果PHP是以apache用户身份运行的,并且您需要运行/usr/bin/myapp,则可以将以下内容添加到/etc/sudoers (或任何sudoers所在的位置):
apache ALL = (root) NOPASSWD:NOEXEC: /usr/bin/myapp这意味着用户apache可以在没有密码的情况下以root用户身份运行/usr/bin/myapp,但应用程序不能执行其他任何操作。
发布于 2011-03-31 18:53:14
我相信一定有更好的方法来完成你正在尝试完成的任何事情,而不是你试图创建的任何机制。
如果你只是想把消息从一个php脚本写到某个地方的一个screen会话中,试试这个:
php中的
使用追加-写入访问权限打开文件:
$handle = fopen("/var/log/from_php", "wb");写入您的文件:
fwrite($handle, "Sold another unit to " . $customer . "\n");screen session中的
tail -F /var/log/from_php如果不能只在screen会话中运行tail,那么可以使用write(1)实用程序将消息写入不同的终端。有关此机制的详细信息,请参阅write(1)和mesg(1)。(我不太喜欢日志文件方法,因为它是持久的,可以在以后进行搜索。但我不知道您到底想要实现什么,所以这是另一种可能比日志文件上的tail -F更好的选择。)
https://stackoverflow.com/questions/5498572
复制相似问题