Shell-Script

如何在 Bash 腳本中執行 sudo 命令

  • October 10, 2021

我只需要在啟動時重新啟動 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。

  1. 在不使用 sudo 的情況下編寫腳本
  2. chmod 腳本文件到 root 並從使用者和其他人那裡獲取所有權限。
  3. 使用 sudo 執行腳本

引用自:https://unix.stackexchange.com/questions/430451