sudoコマンドリストのパスワードを覚えていますか?

sudoコマンドリストのパスワードを覚えていますか?

Linuxで作成する方法はありますか?Sudoユーザーが最初の行に入力したパスワードを覚えているコマンドは何ですか?

たとえば、ユーザーが入力する必要があるコマンドのリストの場合、一部のコマンドには次のものが必要です。Sudoプレフィックス、ユーザーが指示を一度に端末にコピーして貼り付ける場合、パスワードが一度だけ尋ねられるかどうかを確認する方法は?

例:

mkdir ~/acpiinfo ; cd ~/acpiinfo
sudo acpidump > acpidump.txt
# enter password 
sudo acpixtract acpidump.txt
ls *.dat | while read i; do iasl -d "${i}"; done
pid=`sudo dmidecode -s system-product-name`
vid=`sudo dmidecode -s system-version`
name=$pid.$vid
mkdir "${name}" && cp *.dsl "${name}"/ 
tar czf "${name}.tar.gz" "${name}"/ && ls -l "$( pwd )/${name}".tar.gz

答え1

デフォルトではこれを行う必要があります。 sudoのマンページから:

ユーザーが認証されると、タイムスタンプが更新され、ユーザーは短時間(Sudoersで上書きされない限り5分間)パスワードなしでsudoを使用できます。

お使いのシステムがこれを行わない場合は、確認してください/etc/sudoers。 sudoersのマンページから:

タイムスタンプタイムアウト

sudoがパスワードを再要求するまでに経過できる時間(分)。小さな粒度だけでは十分ではない場合、時間制限には2.5のような小数部が含まれる場合があります。デフォルトは 5 です。常にパスワードの入力を求める場合は、0に設定してください。 0より小さい値に設定すると、ユーザーのタイムスタンプは期限切れになりません。これは、ユーザーがそれぞれsudo -vとsudo -kを介して独自のタイムスタンプを作成または削除できるようにするために使用できます。

したがって、timestamp_timeout変数がゼロに設定されているようです。行を実行しvisudoてコメントを付けるか、必要に応じて設定してください。

答え2

二重sudoの例不要:

sudo sh -c "apt-get update && apt-get -y dist-upgrade && apt-get -y autoremove && apt-get autoclean"

このアプローチは、コマンドに時間がかかっても問題なく動作します。

答え3

このsudo bash -c 'sudo cmd1; cmd2; sudo cmd3;...'イディオムは一連のコマンドのパスワードを覚えているようです。

# test cases
sudo bash -c 'sudo ls -ld *; sleep 500; sudo ls -ld *'
sudo -k
sudo bash -c 'sudo ls -ld *; sudo -k; sleep 5; sudo ls -ld *'

答え4

sudo -sシェルはルートで始まります(パスワードの入力を求められます)。その後、sudoを前に付けずに複数のコマンドを入力できます。完了したら、exitルートシェルです。

関連情報