Linux
嘗試在 linux 中為某些 cli 命令設置無密碼時遇到問題
電腦環境
作業系統:Arch Linux - Potato
外殼: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
問題
啟動一個新終端就足夠了,還是我需要重新啟動整個系統才能啟動更改?
或者也許我忘記了另一個步驟?
裡面的行
/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 文件以允許它的確切形式。