我有用于 apache2 的 php 代码,用于在服务器上挂载 NFS 文件系统。它们的形式为 exec(“执行挂载的某些脚本具有正确的 sudo 权限”);
这在 ubuntu 16 上运行良好,符合预期。安装后,我可以执行“df”,安装的卷就会出现,我可以按预期访问它。
在 ubuntu 18 下,行为有所不同,我不明白。它似乎执行了虚拟或临时挂载,但除了 www-data 用户之外,没有人可以访问它。换句话说,我执行 php
exec(“挂载脚本”); exec(“df> some_log_file”);
some_log_file 将显示挂载。但是,如果我同时登录服务器(无论是直接在显示器上还是通过 ssh),并且输入“df”,它不会出现(即使以 root 身份也无法通过任何其他方式访问)。
我猜这可能与 systemd 有关,因为它有点像 PrivateTmp,但我甚至不知道在谷歌中输入什么字符串才能弄清楚发生了什么。
注意:这是一个位于隔离 LAN 上的 Apache 服务器,未连接到 Internet,因此不存在安全风险,因此您无需指出风险。