Linux

在 shell 腳本中安全地傳遞 root 密碼

  • November 4, 2015

我總是以控制台模式啟動我的 GNU/Linux 筆記型電腦。但有時我需要調出 GUI 模式。它總是需要輸入root密碼。所以我編寫了以下腳本“gogui.sh”並將其放入/usr/bin

#!/bin/bash
echo "mypassword" | sudo service lightdm start

這是一個非常愚蠢的想法,好像有人讀過文件,可以很容易地看到我的密碼。

是這個的替代品嗎?

在腳本中將密碼傳遞給 sudo 完全沒有意義。相反,添加一個 sudo 規則,添加您要使用NOPASSWDtag執行的特定命令。請注意,特定於命令的NOPASSWD規則必須在任何一般規則之後。

saeid ALL = (ALL:ALL) ALL
saeid ALL = (root) NOPASSWD: service lightdm start

但這可能無論如何都沒有用。lightdm start啟動登錄提示,但僅當您想讓其他使用者以圖形方式登錄時才需要它。如果您只想啟動 GUI 會話,則不需要它。相反,呼叫startx以從您的文本模式會話啟動 GUI 會話。這不需要任何額外的特權。

您可能需要明確指定您的視窗管理器或桌面環境,因為startx可能不會選擇 lightdm 使用的相同預設會話類型。

startx -- gnome-session

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