从php代码在debian中安装驱动器


Mounting a drive in debian from php code

我已经做了两天了,还没有找到任何方法(好的或坏的)来工作。

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

我用以下命令直接在控制台上做这件事没有问题

mount -t cifs //IP-REMOTE-MACHINE/Folder -o username=username,password=password /mnt/share

显然,如果没有根权限,尝试只执行此命令的shell_exec()是不可行的。

我试着shell_exec()一个脚本,在这个脚本中我可以切换到root用户(通过su或sudo mycommand),但它们都不起作用(从来没能成功地完成一个即使对root密码进行了硬编码也会自动将我的用户切换到root的脚本(即使这感觉非常糟糕,我本可以接受这个atm)。

在那之后,我尝试使用pmount,但从未找到访问远程共享文件的方法(难道我不认为这是可能的,但我可能错过了一些东西?)

所有这些都是在一台带有apache2的Debian机器上运行的。

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

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

使用www数据(Debian中web服务器的用户)运行sudo命令是不安全的。

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

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

编辑:添加visudo:更安全

www-data ALL= NOPASSWD: /bin/mount

允许www数据仅使用sudo /bin/mount