Shell-Script
如何在 Bash 腳本中執行 sudo 命令
我只需要在啟動時重新啟動 tor 服務,腳本就這麼簡單:
#!/bin/bash sudo service tor restart
但我想在每次啟動時不輸入密碼就執行它。
我關注了這些文章:https ://askubuntu.com/questions/425754/how-do-i-run-a-sudo-command-inside-a-script/425990
我用這個改變了我的 sudoers 文件:
username ALL=(ALL) NOPASSWD: /path/to/script
但是當我嘗試在終端中執行它時,腳本總是要求我輸入密碼。我也嘗試了這篇文章中的其他答案,但由於該文章沒有驗證,我沒有找到解決方案。如果有人有解決方案?
線
username ALL=(ALL) NOPASSWD: /path/to/script
賦予
username
執行腳本的權利sudo
,如$ sudo /path/to/script
如果您希望使用者能夠在腳本中
tor
專門重新啟動,請使用sudo
username ALL=(ALL) NOPASSWD: /usr/sbin/service tor restart
現在腳本可以做
sudo /usr/sbin/service tor restart
請注意,此命令必須與配置完全對應
sudo
。
最佳做法是不要在腳本中使用 sudo。
- 在不使用 sudo 的情況下編寫腳本
- chmod 腳本文件到 root 並從使用者和其他人那裡獲取所有權限。
- 使用 sudo 執行腳本