sudoがパスワードを要求せずに自動的にパスワードを受け入れるようにするにはどうすればよいですか? [コピー]

sudoがパスワードを要求せずに自動的にパスワードを受け入れるようにするにはどうすればよいですか? [コピー]

誰かがそのユーザー名でログインするたびにコンピュータがシャットダウンするようにshutdownというユーザーを作成しました。これを行うには、.profileの末尾に次のコマンドを入れました。

exec sudo shutdown -h now

しかし、これは目標を達成できませんでした。コンピュータがシャットダウンするのではなく、ユーザーがログインを閉じると、ログイン画面が再び表示されます。したがって、ユーザーはログインできませんが、同時に同じログイン画面に戻ります。

私が考える理由は、ユーザーの終了パスワードが提供されておらず、マシンが終了していないためだと思います。 execのおかげでログイン画面が戻ってきました。

これで、解決するには、上記のsudoコマンドを実行したときに自動的にパスワードを取得する方法が必要です。検索してみると、オプションを使用する必要があるようman sudoです。-A

該当するマニュアルページによって私は走りました。

SUDO_ASKPASS=/home/ravbholua/pass.txt

export SUDO_ASKPASS

その後、動作していることを確認するために実行しました。

ravbholua@ravbholua-Aspire-5315:~$ sudo -A pwd

sudo: unable to run /home/ravbholua/pass.txt: Permission denied

この出力では、これはこのパスファイルを実行し、私のパスワードをsudoの出力として提供する必要があることを意味します。私が念頭に置いたのは、pass.txtというファイルからパスワードを取得することでしたので、そのファイルにパスワードを入力しました。しかし! ! ! ! ! ! !

どんな提案でもお願いします!

ベストアンサー1

SUDO_ASKPASSは、ユーザーにパスワードを求めるバイナリでなければなりません。その使用例は、GUIプログラムを使用するときにユーザーにパスワードの入力を求めるGUIウィンドウをポップアップすることです。マニュアルページには以下があります。

使用可能な端末がない場合、または-Aオプションが指定されている場合は、パスワードを読み取るためのヘルパープログラムのパスを指定します。

必要な操作を実行するには、「shut」ユーザーがパスワードを指定せずにシャットダウンを実行できるように、/ etc / sudoersファイルを編集する必要があります。次の行を使用すると、「shut」ユーザーが「すべての」コンピュータで「/sbin/shutdown -h now」と「/sbin/shutdown -r now」を実行できます。

すべて終了 = NOPASSWD: /sbin/shutdown -h 今、 /sbin/shutdown -r 今

安全性の低いオプションは、sudoの「-S」オプションを使用してstdinからパスワードを読み込み、そのパスワードを再エコーすることです。

echo "パスワード" | sudo -S shutdown -h 今

おすすめ記事