我想在 php 网页中运行一个 shell 脚本来检查我的系统(Ubuntu 12.04)上运行的一些进程。谷歌搜索我找到了,shell_exec()但在加载 php 时我无法运行脚本。
这是我使用的php代码。
$output = shell_exec('./dirlist.bash');
echo "<pre>$output</pre>";
Run Code Online (Sandbox Code Playgroud)
和我得到的那段 html
<pre></pre>
Run Code Online (Sandbox Code Playgroud)
也试过 $output = shell_exec('sudo -u www-data ./dirlist.bash');
dirlist.bash执行ls -l (仅用于测试脚本和 shell_exec)
我认为这不是权限问题。运行目录为所有用户授予写入和执行权限(我在这里应该小心)。
drwxrwxrwx 4 meteo meteo 4096 mar 11 15:20 RAMS
Run Code Online (Sandbox Code Playgroud)
用户 www-data 已添加到 sudoers 文件中以备不时之需
www-data ALL = (meteo) NOPASSWD: /home/meteo/www/RAMS/dirlist.bash
Run Code Online (Sandbox Code Playgroud)
提前致谢
我在 Ubuntu 10.04 中长时间使用外部 USB 硬盘驱动器,无论是在工作中还是在家里。现在我已经在家里安装了 12.04。今天我第一次使用U盘。我可以读取磁盘但无法更改我想要的文件的权限。
“挂载”的输出
/dev/sdb1 on /media/FREECOM HDD type vfat
(rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,
utf8=1,showexec,flush,uhelper=udisks)
Run Code Online (Sandbox Code Playgroud)
我试试
sudo chmod u+w bsst-hdf_to_bsst-h5
Run Code Online (Sandbox Code Playgroud)
我得到
-rw-r--r-- 1 paco paco 2956 dic 19 10:27 bsst-hdf_to_bsst-h5
Run Code Online (Sandbox Code Playgroud)
任何想法,将不胜感激。提前致谢。
再次嗨,很抱歉延迟回答。现在我尝试将 fstab 中的设备行从 10.04 复制到 12.04 的笔记本电脑,但仍然收到错误消息。
Error mounting: mount exited with exit code 1: helper failed with:
mount: only root can mount /dev/sdb1 on /media/FREECOM HDD
Run Code Online (Sandbox Code Playgroud)
我添加到 fstab 以尝试挂载 USB 驱动器的行是
/dev/sdb1 /media/FREECOM\040HDD vfat rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,flush 0 0
Run Code Online (Sandbox Code Playgroud)
当恢复原来的fstab并插入USB驱动时,mount的输出是
/dev/sdb1 on /media/FREECOM HDD type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
Run Code Online (Sandbox Code Playgroud)
我应该在 fstab …