我正在尝试以另一个用户身份运行一个脚本来启动一个软件(Etherpad),它的运行方式如下(从根目录): su -c "/var/www/etherpad-lite/bin/run.sh" -s /bin/bash etherpad
但我收到以下错误:bash: /var/www/etherpad-lite/bin/run.sh: Permission denied
这之前工作得很好,直到我为我正在从事的另一个项目安装了一堆东西后才停止工作,这些东西都不应该影响etherpad。
/var/log/auth.log 显示:
Aug 12 19:59:21 bhs1 su[7289]: Successful su for etherpad by root
Aug 12 19:59:21 bhs1 su[7289]: + /dev/pts/1 root:etherpad
Aug 12 19:59:21 bhs1 su[7289]: pam_unix(su:session): session opened for user etherpad by root(uid=0)
Aug 12 19:59:21 bhs1 su[7289]: pam_unix(su:session): session closed for user etherpad
我做了一些搜索,发现了一些可能导致此问题的原因,但没有一个与我的问题相关:
- 该文件被 chmodded 为 777 (
-rwxrwxrwx
) 并且由 etherpad 用户拥有。我只是将其更改为 777 以确保这不是权限问题,之前类似于 700。 - 文件系统未启用 noexec
我在专用服务器上运行 Debian 7.6。
答案1
您可以让 run.sh 具有“由所有人读取”权限,但如果 /var/www/ 具有“仅由 root 读取”权限,您将收到“权限被拒绝”错误消息。
检查路径中所有目录的权限
/var/
/var/www/
/var/www/etherpad-lite/
/var/www/etherpad-lite/bin/