我正在为Cent OS服务器的GUI编写PHP脚本。出于测试目的,我将Apache设置为localhost。 Cent OS不会自动挂载连接的USB设备。在PHP中,我需要检查是否插入了USB设备然后安装它并列出用户的文件内容。这在bash中非常简单,但是我无法在PHP中使用它。我玩过exec()
和shell_exec()
函数都没有用。我手动尝试了这些命令,即:
shell_exec("sudo mount /dev/sdb1 /mnt");
并通过bash脚本:
exec("./mountlist.sh");
PHP中是否有一个函数我可以调用它会做同样的事情,或者我错过了exec
和shell_exec
函数。这两个函数在shell中都能正常工作。由于mount是root命令,因此我在bash脚本中包含了sudo
。
答案 0 :(得分:1)
你不能在PHP脚本中sudo - 没有办法输入sudo密码。
您可以创建一个shell脚本并使用STICKY位让它以root用户身份运行
http://www.dba-oracle.com/linux/sticky_bit.htm
即使您以普通用户身份运行它,passwd命令也可以写入root拥有的密码文件。
另外 - 您可以授予Web用户安装/卸载文件系统的权限(在大多数系统上将他添加到保险丝组),但如果您的Web服务器被黑客攻击,那么这是更开放的,而且相当危险,所以我会去使用shell脚本和粘贴位。