ログイン時にsudoの猶予期間を自動的に入力する方法

ログイン時にsudoの猶予期間を自動的に入力する方法

ユーザーがログインしてからsudo猶予期間を提供することがセキュリティ上の問題になる可能性があることを知っていますが、これは私の設定でセキュリティと使いやすさの間で有益な妥協点になると思いました。

問題はこれを行う方法です。私が知る限り、sudoはCLIを提供しません。

おそらく、どういうわけかgdm入力パスワードを同様のものとして送信できますsudo false。しかし、繰り返しますが、プレーンテキストで提供されたユーザーパスワードを取得するにはどうすればよいですか?pamこれにカスタムモジュールを作成する必要がありますか?

それとも、sudoの実装の詳細を詳しく見て、rootで直接タイムスタンプデータベースを操作する方が良いでしょうか?

答え1

実際にテストされていない深刻なハッキング:

  • 次の行を追加します/etc/pam.d/gdm

    # Update the sudo ticket; proceed whether this succeeds or fails
    session [success=ignore new_authtok_reqd=ignore] optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket
    
  • コンテンツ/usr/local/sbin/update_sudo_ticket:

    #!/bin/sh
    DIR=/var/run/sudo/$PAM_USER
    if [ -d "$DIR" ]; then touch "$DIR"; else mkdir "$DIR"; fi
    

tty_ticketこのオプションをオフにする必要があります/etc/sudoers(そうでなければ、とにかく意味がありません。Gdmログインは、Xセッションの仮想端末で実行されるすべての操作には影響しません)。

私はこれが動作することを保証しません。これにより、明白なセキュリティホールが発生しないことを保証できません。自分の責任で使用してください。

答え2

Gilesは私に次のようなより簡単な解決策を思い出すようにインスピレーションを与えました。/etc/mdm/PostLogin/DefaultLinux-Mint Mate(/etc/gdm/PostLogin/DefaultUbuntu)の実行可能ファイルに次の行が含まれていることを確認してください。

touch /var/lib/sudo/$LOGNAME

関連情報