我最近配置了一個 Symfony 3 站點,其中涉及我在資料夾上設定一些權限/var
。我必須執行以下操作:
$ HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var
這添加了必要的權限,但現在每次使用該sudo
命令時都會收到以下訊息。
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for user:
這通常僅在用戶第一次使用時發送sudo
。另外,我以前只能輸入一次密碼sudo
,一段時間後就會過期(然後我必須再次重新輸入)。現在我每次都會收到訊息並提示輸入密碼。
有沒有辦法解決這個問題?
答案1
以防萬一有人想知道我是如何解決這個問題的。
使固定:
sudo setfacl -R -b
此遞歸 (-R) 刪除所有 (-b) acl 權限
我還收到以下文件的群組寫入警告:
/var/lib/sudo/lectured
/var/lib/sudo/ts
使固定:
sudo chmod 700
對於這兩個文件,更正了權限並修復了警告
答案2
如果你輸入
sudo -s
在終端機中,之後的所有命令都將執行為sudo
,但如果沒有必要,我不建議停留在這種模式下。