通过网络界面在Linux上安装CIFS共享

问题描述 投票:0回答:1

我极力尝试通过Web用户界面在Debian 10盒子上安装CIFS共享,并使整个系统都可以访问它。 mount命令已成功执行,但是/ etc / mtab或/ proc / mounts中未列出安装点,因此mount命令也未显示该安装点。

我将apache2用作网络服务器,并且尝试了不同的方法,但均获得了相同的结果。

目标是将php脚本与Apache或Nginx一起使用,以安装对整个操作系统有效且可见的共享,就像我在命令行上使用mount命令一样。

我已经尝试通过调用bash脚本来安装共享的mount.php尝试不同的方式:

  • 将www-data添加到不带密码的sudoers,并调用包含“ sudo mount ...”的脚本
  • 使用了作为root用户执行的c编译的包装器,该包装器调用了安装共享的bash脚本
  • 已安装具有启用了root的套接字的php-fpm来调用bash脚本
  • 让bash脚本将共享添加到/ etc / fstab并执行mount -a

所有这些方法都可以通过命令行调用,即使以www-data用户身份(如果可能)被调用也应如此。

他们似乎都通过Web界面调用时也挂载了共享,因为如果我使用相同的技术来启动挂载,而网站上的php-script中没有任何参数,则挂载将被列出。此外,尝试通过Web界面挂载共享的第二次尝试也显示设备正忙的消息。

但是当我在命令行上使用不带任何参数的mount命令时,未列出安装点,也无法在/ etc / mtab或/ proc / mounts中找到它。

在最后一种方法中,我让脚本编辑/ etc / fstab并调用'mount -a',其行为完全相同(在Web界面中列出,但未在命令行上列出),但是当我重新启动共享时已按预期安装并可见。

因此,我非常确定我忽略了运行apache2的某种用户空间/沙箱/终端限制,这对mount命令有一定影响。奇怪的是,因为我什至可以使用脚本编辑/ etc / fstab,并且似乎拥有对所有内容的root访问权限-甚至可以挂载,否则根本无法启动。但是无论如何,通过Web界面调用时,mount命令似乎会将它的安装结果写入其他位置。

有人有向我指出正确方向的想法吗?

谢谢,Axel

我极力尝试通过Web用户界面在Debian 10盒子上安装CIFS共享,并使整个系统都可以访问它。 mount命令成功执行,但是安装点...

php linux bash mount
1个回答
0
投票

[如果您在权限方面遇到麻烦,并且不想对此进行深入研究,我建议在PHP中使用简单的Write to File函数,然后使用CRON JOB执行脚本,如果找到该文件,则将其删除,并执行您想要的功能。该cron作业在整个计算机上不应有任何权限问题。

© www.soinside.com 2019 - 2024. All rights reserved.