PHP:挂载USB设备

时间:2012-08-27 18:12:47

标签: php bash exec shell-exec

我正在为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中是否有一个函数我可以调用它会做同样的事情,或者我错过了execshell_exec函数。这两个函数在shell中都能正常工作。由于mount是root命令,因此我在bash脚本中包含了sudo

1 个答案:

答案 0 :(得分:1)

你不能在PHP脚本中sudo - 没有办法输入sudo密码。

您可以创建一个shell脚本并使用STICKY位让它以root用户身份运行

http://www.dba-oracle.com/linux/sticky_bit.htm

即使您以普通用户身份运行它,passwd命令也可以写入root拥有的密码文件。

另外 - 您可以授予Web用户安装/卸载文件系统的权限(在大多数系统上将他添加到保险丝组),但如果您的Web服务器被黑客攻击,那么这是更开放的,而且相当危险,所以我会去使用shell脚本和粘贴位。