센토스문서지적했다:
...PAM 타임스탬프 시나리오에서 그래픽 관리 애플리케이션은 시작 시 사용자에게 루트 비밀번호를 묻는 메시지를 표시합니다. 사용자가 인증되면 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분이 바이너리 형식으로 표현되는 정보는 무엇입니까?
내 두 번째 질문은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