私が望むのは、パスワードを再入力しなくてもすぐにログインして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 visudo
sudoers 編集用 )
~ 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
サービスでのみ呼び出してください。sshd
login
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