Linux

如何遠端執行 ssh 命令一個沒有密碼的 sudo 命令

  • February 22, 2022

我有一個 linux(基於 debian)伺服器,它被配置為允許使用者 ‘admin’ 的 SSH 會話,但不允許使用者 ‘root’。這兩個帳戶以某種方式連結,因為它們共享相同的密碼。

在以管理員身份進行 SSH 會話期間,執行命令需要“sudo”,除非我切換到使用者“root”。

我有一些服務需要時不時地執行,甚至在系統啟動時也需要執行。我目前正在使用私鑰/公鑰機制在伺服器上遠端執行命令。有些命令是手動輸入的,有些是我執行的 shell 腳本。目前,當命令使用 sudo 時,伺服器仍然要求輸入密碼。

問題:如何在不提供密碼的情況下以使用者 ‘admin’ 的身份遠端執行?是否可以使用私鑰/公鑰來滿足 sudo?或者甚至是一種以“root”使用者身份啟動 shell 腳本的方法?

甚至可以避免使用 sudo 輸入密碼嗎?如果不是,它們是像我這樣的情況的其他替代方案嗎?

您可以告訴 sudo 跳過某些命令的密碼。

例如在/etc/sudoers

archemar  ALL = (www-data) NOPASSWD: /bin/rm -rf /var/www/log/upload.*

這讓我可以使用

sudo -u www-data /bin/rm -rf /var/www/log/upload.*

作為沒有密碼的archemar。

注意

sudo -u www-data rm -rf /var/www/log/upload.*

rm/bin/rm. _ (*)

請務必/etc/sudoers使用visudo命令進行編輯。

達到高級水平後,您可能希望擁有自己的 sudo 文件/etc/sudoers.d


(*) 現代作業系統(redhat 7.x 大約 2022 年)中的這種變化,如果rm在您的路徑匹配/bin/rm中,sudoers.conf您可能會使用rm.

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