尝试以其他用户身份运行脚本时权限被拒绝

尝试以其他用户身份运行脚本时权限被拒绝

我正在尝试以另一个用户身份运行一个脚本来启动一个软件(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/

相关内容