シェルスクリプトからルートパスワードを安全に渡します。

シェルスクリプトからルートパスワードを安全に渡します。

私はいつもコンソールモードでGNU / Linuxノートブックを起動します。しかし、時にはGUIモードを呼び出す必要があるかもしれません。常にルートパスワードを求めます。だから私は次のスクリプト「gogui.sh」を書いて次の場所に置きました/usr/bin

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

これは、ファイルを読んでいる人が自分のパスワードを簡単に知ることができるように、非常に愚かな考えです。

代替案はありますか?

ベストアンサー1

スクリプトでsudoにパスワードを渡すことはまったく意味がありません。代わりにsudoルールを追加してください。実行する特定のコマンドを追加します。NOPASSWD使用するタグを追加します。。コマンド固有のNOPASSWD規則は一般規則の後になければなりません。

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

しかし、とにかくそれは役に立たないかもしれません。lightdm startログインプロンプトを起動しますが、他のユーザーにグラフィカルにログインさせる場合にのみ必要です。ただGUIセッションを開始したい場合は必要ありません。代わりに電話してください。startxテキストモードセッションでGUIセッションを開始します。これには追加の権限は必要ありません。

startxlightdmが使用するのと同じデフォルトのセッションタイプが選択されない可能性があるため、ウィンドウマネージャまたはデスクトップ環境を明示的に指定する必要があるかもしれません。

startx -- gnome-session

おすすめ記事