![嘗試在 Linux 中為某些 cli 指令設定無密碼時遇到問題](https://rvso.com/image/169425/%E5%98%97%E8%A9%A6%E5%9C%A8%20Linux%20%E4%B8%AD%E7%82%BA%E6%9F%90%E4%BA%9B%20cli%20%E6%8C%87%E4%BB%A4%E8%A8%AD%E5%AE%9A%E7%84%A1%E5%AF%86%E7%A2%BC%E6%99%82%E9%81%87%E5%88%B0%E5%95%8F%E9%A1%8C.png)
電腦環境
作業系統:Arch linux - Manjaro
外殼:zsh
目的
我正在嘗試啟用以下命令不需要輸入密碼對於我的主用戶帳戶:ab
sudo systemctl stop NetworkManager
sudo systemctl start NetworkManager
嘗試失敗
我已閱讀並嘗試遵循一些在線幫助,並通過使用以下程式碼sudo -i
建立文件來達到此目的:/etc/sudoers.d/ab
ab ALL=(root) NOPASSWD: sudo systemctl stop NetworkManager
ALL=(root) NOPASSWD: sudo systemctl start NetworkManager
故障排除嘗試
我嘗試進行以下編輯但沒有成功:
- 改變
root
為ALL
- 改變
systemctl
為/bin/systemctl
- 刪除
sudo
每次進行編輯和保存時,我cat /etc/sudoers.d/ab
都會檢查是否進行了更改,並且總是打開一個新終端來嘗試該命令,每次嘗試以下組合,同時仍然要求輸入密碼:
sudo systemctl start NetworkManager
sudo /bin/systemctl start NetworkManager
systemctl start NetworkManager
/bin/systemctl start NetworkManager
問題
啟動新終端是否足夠,或者我需要重新啟動整個系統才能啟動變更?
或者也許我忘記了另一個步驟?
答案1
中的行/etc/sudoers.d/ab
可能應該是這樣的:
ab ALL=(root) NOPASSWD: /bin/systemctl stop NetworkManager
ab ALL=(root) NOPASSWD: /bin/systemctl start NetworkManager
使用sudo
正常的本機儲存的 sudoers.d 檔案(沒有像 LDAP 伺服器中儲存的 sudoers 資訊那樣先進的內容),對 sudoers 檔案的任何變更都應立即生效,無需登出/登入、啟動新終端或類似的操作那。
通常sudo
會記錄使用它的成功和失敗嘗試,因此您應該查看相應的日誌檔案(通常是/var/log/secure
或/var/log/auth.log
,取決於發行版)以查找來自 的訊息sudo
。這些訊息將包括用戶嘗試執行的命令sudo
,您需要以確切的形式將其寫入 sudoers 檔案以允許執行。