Bash
嘗試以其他使用者身份執行腳本時權限被拒絕
我正在嘗試以啟動軟體(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/