Sudo
可以對使用者執行 sudo 但拒絕“執行命令為”嗎?
我想知道如何從沒有密碼的腳本中以另一個使用者身份執行命令。
sudo -l
返回:(root) NOPASSWD: /bin/su - someuser
sudo as 沒有問題
someuser
。命令sudo su - someuser
無需密碼即可工作。但是每次我嘗試以該使用者身份執行命令時,都會提示我輸入密碼。我都試過了:sudo su -c pwd someuser sudo -u someuser pwd
有沒有其他選擇?問題的原因是什麼?我沒有root訪問權限。
我可能會說顯而易見的,但我認為答案在配置中。
你提到你的配置顯示
(root) NOPASSWD: /bin/su - someuser
因此,您只被允許以 root 身份執行一個命令
/bin/su - someuser
(這樣可以避免 su 提示輸入密碼),並且 NOPASSWD: 意味著 sudo 不會要求您輸入密碼來執行此操作。但是您想以 someuser 身份執行其他命令,(直接從您自己的 shell)
sudo -u someuser somescript
但這沒有配置。你想
sudo -l
展示一些類似的東西(root) NOPASSWD: /bin/su - someuser (someuser) NOPASSWD: /bin/ls, /usr/bin/whoami, /home/someuser/bin/ascript
(上面的輸出可能不是 100%,因為它會顯示,但希望你能理解我的意思)
您目前的配置方式意味著您必須首先 su 到某個使用者,然後以該使用者身份執行命令。
聽起來您對這台機器沒有管理員控制權。也許將腳本開發為someuser,然後您將獲得一個命令列表和一個測試過的腳本,返回給您的管理員,添加到
/etc/sudoers
.