セントース文書指摘した:
... PAMタイムスタンプシナリオでは、グラフィカル管理アプリケーションは起動時にユーザーにrootパスワードの入力を求めます。ユーザーが認証されると、pam_timestamp.soモジュールはタイムスタンプファイルを生成します。デフォルトでは、/var/run/sudo/ ディレクトリに作成されます。タイムスタンプファイルがすでに存在する場合、グラフィカル管理者はパスワードの入力を求めません。代わりに、pam_timestamp.soモジュールはタイムスタンプファイルをフラッシュして、ユーザーに追加の5分間問題なく管理アクセスを許可します。
/var/run/sudo/ファイルを確認して、タイムスタンプファイルの実際の状態を確認できます。デスクトップの場合、関連ファイルは不明です:root。資格情報は存在し、タイムスタンプが5分未満の場合は有効です。 ...
その後、ファイルを確認しましたが、バイナリ形式です。
[xiaobai@xiaobai note]$ sudo cat /var/run/sudo/ts/xiaobai
(�r�3�+�[xiaobai@xiaobai note]$
[xiaobai@xiaobai note]$ sudo hexdump -C /var/run/sudo/ts/xiaobai
00000000 01 00 28 00 02 00 00 00 e8 03 00 00 72 17 00 00 |..(.........r...|
00000010 06 34 00 00 00 00 00 00 4e a7 c9 3a 00 00 00 00 |.4......N..:....|
00000020 01 88 00 00 00 00 00 00 |........|
00000028
[xiaobai@xiaobai note]$
...
[xiaobai@xiaobai note]$
(�ry5S�V�[xiaobai@xiaobasudo hexdump -C /var/run/sudo/ts/xiaobai
00000000 01 00 28 00 02 00 00 00 e8 03 00 00 72 17 00 00 |..(.........r...|
00000010 af 35 00 00 00 00 00 00 5d 1a 24 07 00 00 00 00 |.5......].$.....|
00000020 01 88 00 00 00 00 00 00 |........|
00000028
[xiaobai@xiaobai note]$
数字は小さいですが、4から5にゆっくりと増加します。 9時に達すると1分より長く見えることがわかったので間違っているかもしれません。 9時以降は読書がますます難しくなります。
xiaobai@xiaobai note]$ sudo hexdump -C /var/run/sudo/ts/xiaobai
00000000 01 00 28 00 02 00 00 00 e8 03 00 00 72 17 00 00 |..(.........r...|
00000010 30 3b 00 00 00 00 00 00 59 f9 63 32 00 00 00 00 |0;......Y.c2....|
00000020 01 88 00 00 00 00 00 00 |........|
00000028
[xiaobai@xiaobai note]$ sudo hexdump -C /var/run/sudo/ts/xiaobai
00000000 01 00 28 00 02 00 00 00 e8 03 00 00 72 17 00 00 |..(.........r...|
00000010 32 3b 00 00 00 00 00 00 ad 72 8f 1b 00 00 00 00 |2;.......r......|
00000020 01 88 00 00 00 00 00 00 |........|
00000028
[xiaobai@xiaobai note]$
最初の質問は、/var/run/sudo/userファイルをどのように確認するかです。バイナリ形式?医者が指摘した「存在し、タイムスタンプ5分未満、証明書が有効です。 」すべきこと<5分このバイナリ形式で表現される情報は何ですか?
私の2番目の質問はPAMタイムスタンプ(pam_timestamp.so)とタイムスタンプタイムアウト(/etc/sudoers)も同じですか?
p/s: Fedora 21 でテストしました。
答え1
マニュアルページで次のリンクをクリックします。http://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-pam-timestamp-remove.htmlpam_timestamp_checkユーティリティへの参照を見つけることができます。
ユーティリティpam_timestamp_check
はファイルを検証し、戻り値を確認できます。
詳細も参照してくださいman pam_timestamp_check
。
私のシステム(Linux Mint)は、pam_timestamp_checkが常に終了コード7(間違ったタイムスタンプ)を返すことを発見しました。プロセスのデバッグに使用されるstrace pam_timestamp_check
と、終了コード2が返されます。バイナリはsetuidルートではありません。バイナリsetuidを使用した後、chmod u+s /usr/bin/strace
プロセスを追跡できました。
lambert # strace pam_timestamp_check root
.
.
lstat("/var/run/sudo/lambert/9:root", {st_mode=S_IFREG|0600, st_size=57, ...}) = 0
access("/var/run/utmpx", F_OK) = -1 ENOENT (No such file or directory)
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/var/run/utmpx", F_OK) = -1 ENOENT (No such file or directory)
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
exit_group(7) = ?
+++ exited with 7 +++
/var/run/utmp
この出力で確認しましたが見つかりませんでした。
私のファイルシステムを検索したところ、ファイルが代わりにあることがわかりutmp
ました。私が使用したファイルを作成した後:/run/utmp
/var/run/utmp
touch /var/run/utmp
chmod 664 /var/run/utmp
chown root:utmp /var/run/utmp
(新しい端末で)新しいsudoセッションを開始できます。
lambert $ sudo su
lambert # ls -l /var/run/utmp
-rw-rw-r-- 1 root utmp 384 mei 12 21:59 /var/run/utmp
#logout
lambert $ pam_timestamp_check root
lambert $ echo $?
0