誰かがそのユーザー名でログインするたびにコンピュータがシャットダウンするように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 今