从php代码安装debian驱动器

时间:2015-02-06 10:18:06

标签: php linux apache debian mount

我已经在这里待了两天了,并且无法找到任何方式(好的或坏的)来做这件事。

我必须能够从我的网站页面动态地通过网络安装驱动器(这部分是不可避免的)。

使用以下命令

直接在控制台上执行此操作时没有任何问题
mount -t cifs //IP-REMOTE-MACHINE/Folder -o username=username,password=password /mnt/share

显然,尝试只执行此命令的shell_exec()将无法使用root权限。

我尝试shell_exec()一个脚本,我将切换到root用户(通过su或sudo mycommand),但是它们都不起作用(从来没能成功地做一个会自动切换的脚本我的用户即使用root pwd硬编码也是root用户(即使我认为这是一个非常糟糕的主意我可以接受那个atm)。

之后我尝试使用pmount,但从未找到过访问远程共享文件的方法(不要认为它甚至可能,但我可能在这里遗漏了一些东西?)

所有在使用apache2的Debian机器上运行。

2 个答案:

答案 0 :(得分:0)

我有一个疯狂的想法......

您可以将cron设置为以root身份运行,以检查脚本中的mount命令。该脚本只需设置要处理的mount命令,当cron到达时,运行mount,将命令标记为已处理,然后写入日志文件,然后显示该文件。

答案 1 :(得分:0)

使用www-data(Debian中的Web服务器用户)运行sudo命令是不安全的。

但是如果你想在php脚本中运行sudo [command],你必须在sudoers中添加用户www-data:http://www.pendrivelinux.com/how-to-add-a-user-to-the-sudoers-list/

然后你可以执行:sudo mount ...

编辑:添加visudo更安全:

www-data ALL= NOPASSWD: /bin/mount

允许www-data仅使用sudo /bin/mount