Bash

嘗試以其他使用者身份執行腳本時權限被拒絕

  • August 13, 2014

我正在嘗試以啟動軟體(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

我進行了一些搜尋,發現了一些可能導致此問題的原因,但與我的問題無關:

  • 該文件被修改為 777 ( -rwxrwxrwx),它歸 etherpad 使用者所有。我只是將其更改為 777 以確保它不是權限問題,之前它類似於 700。
  • 文件系統沒有啟用 noexec

我在專用伺服器上執行 Debian 7.6。

您可以使用“所有人讀取”權限的 run.sh,但如果 /var/www/ 具有“僅由 root 讀取”的權限,您將收到“權限被拒絕”錯誤消息。

檢查路徑中所有目錄的權限

/var/
/var/www/
/var/www/etherpad-lite/
/var/www/etherpad-lite/bin/

引用自:https://unix.stackexchange.com/questions/149981