CLIを介してログインするときにsudoの猶予期間を自動的に入力する方法は? [コピー]

CLIを介してログインするときにsudoの猶予期間を自動的に入力する方法は? [コピー]

私が望むのは、パスワードを再入力しなくてもすぐにログインしてsudoコマンドを実行できることです。ログインして特権コマンドを実行する必要がある場合、パスワードを連続して2回入力することは非常に重複します。セキュリティリスクを理解します。しばらく席を空けてからパスワードを再入力する必要がありますが、デフォルトではログインすると、これを防ぐためにこのセッションを自動的に設定する必要があるようですが、何らかの理由でそうではありません。

わかりましたこれらのソリューションしかし、すべてgdmに依存していて初心者だけのためにLightDMをインストールしたようです。また、私はGUIインターフェースにログインせず、私が知っている限り、コンソールは最初にログインを管理するために何も使用しません。

重要な場合は、VMwareでUbuntu 13.04を使用しています。 KDEがインストールされていても特別な理由がない限り、通常はロードされません。

理想的なソリューションはSSHログインにも機能します。

修正する:

Gillesの提案に基づいて、次の作業設定が行われました。

~ tail -n1 /etc/pam.d/sshd
session optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket

そして(確信するsudo visudosudoers 編集用 )

~  sudo head -n12 /etc/sudoers|tail -n1
Defaults        !tty_tickets

そして新しいスクリプトを作成してください

~ cat /usr/local/sbin/update_sudo_ticket
#!/bin/sh
touch -c "/var/lib/sudo/$PAM_USER" 2>/dev/null

実行可能にします(sudo chmod u=+rwx,g=+rx-w,o=-rwx /usr/local/sbin/update_sudo_ticket)。

~  ls -la /usr/local/sbin/update_sudo_ticket
-rwxr-x--- 1 root root 57 Sep 21 20:52 /usr/local/sbin/update_sudo_ticket

ベストアンサー1

あなたはそれを使用することができますpam_exec外部コマンドを呼び出します。pam_execログインサービスを呼び出すユーザーが制御する環境で実行されるため、そこから呼び出すのではなく、予測可能な環境(または)を持つsuサービスでのみ呼び出してください。sshdlogin

sudoユーザーのタイムスタンプを更新するオプションはなく、削除のみ可能です。したがって、タイムスタンプを手動で更新する必要があります。そのオプションを使用しない場合tty_tickets(あまり役に立ちません)、ディレクトリのタイムスタンプを更新するだけです。

session optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket

/usr/local/sbin/update_sudo_ticket似たようなものをどこで見つけることができますか?

#!/bin/sh
touch -c "/var/lib/sudo/$PAM_USER" 2>/dev/null

おすすめ記事