2012-08-27 87 views
0

我正在为Cent OS服务器的GUI编写PHP脚本。出于测试目的,我已将Apache设置为localhost。 Cent OS不会自动挂载连接的USB设备。在PHP中,我需要检查USB设备是否插入,然后安装并列出用户的文件内容。这在bash中很简单,但是我无法使它在PHP中工作。我曾玩过exec()shell_exec()函数,但都无济于事。我曾尝试的命令都手动即:PHP:安装USB设备

shell_exec("sudo mount /dev/sdb1 /mnt"); 

,并通过bash脚本:

exec("./mountlist.sh"); 

是否有一个PHP函数,我可以打电话,会做同样的事情,还是我失去了一些东西与execshell_exec函数。这两个函数都能在shell中正常工作。由于mount是一个root命令,我在bash脚本中包含了sudo

+2

做任何用户php运行下有sudo权限?那些没有密码提示的特权? –

+0

我对PHP和bash相当陌生,用户不会,但如果他们这样做不会成为问题。我将如何授予Apache用户root权限? – user1628380

+3

apache已经以root权限启动(因此它可以绑定到端口80),然后删除它们,因为以root身份运行web服务器是一个根本性的不良想法。 –

回答

1

您无法从PHP脚本中获取sudo - 无法输入sudo密码。

您可以创建一个shell脚本,并使用黏着位设置为具有运行它作为root用户

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

这是passwd命令是如何写的,即使你是属于root用户密码文件以普通用户身份运行它。

此外,您可以授予Web用户挂载/卸载文件系统的权限(将他添加到大多数系统的保险丝组中),但是如果您的Web服务器被黑客入侵,那么这会更加开放并且相当危险,所以我会为了您的目的,使用shell脚本和粘贴位。

+0

谢谢你得到它的工作! – user1628380