Linux
授予特定命令和任何標誌集的 sudo 訪問權限 (RedHat)
如何為帶有標誌的特定命令授予 sudo 訪問權限。
前任。我為以下命令請求了 sudo 訪問權限:
sudo /usr/bin/su - wassa /usr/was7/profiles/dmgr/bin/wsadmin.sh
我可以執行上述命令,但不能執行以下任何命令(它會提示輸入密碼,然後說我沒有所需的訪問權限):
sudo /usr/bin/su - wassa /usr/was7/profiles/dmgr/bin/wsadmin.sh -lang jython -c "AdminApplication.stopApplicationOnCluster('app', '$APP_CLUSTER')" sudo /usr/bin/su - wassa /usr/was7/profiles/dmgr/bin/wsadmin.sh -lang jython -c "AdminApplication.stopApplicationOnCluster('app', '$APP_CLUSTER')"
我知道我可以輕鬆地單獨請求每個命令(由於公司的政策,我可能不得不這樣做),但我想避免它,以防我需要進行任何腳本更改,我不想送出另一張票等待。
sudo
允許在文件中的主機名、路徑名和命令行參數中使用shell 樣式的萬用字元(又名元或 glob 字元) 。sudoers
*
匹配任何零個或多個字元集。
?
匹配任何單個字元。
[...]
匹配指定範圍內的任何字元。
[!...]
匹配不在指定範圍內的任何字元。
\x
對於任何字元“x”,計算結果為“x”。這用於轉義特殊字元,例如:‘*’, ‘?’, ‘[’, and ‘]’
.因此,您可以按照以下方式定義一些內容,以允許帶有或不帶有參數的命令:
leeman24 ALL=(wassa) /usr/was7/profiles/dmgr/bin/wsadmin.sh, /usr/was7/profiles/dmgr/bin/wsadmin.sh -*