사용자의 마지막 비밀번호 변경 [닫기]

사용자의 마지막 비밀번호 변경 [닫기]

저는 현재 UNIX 시스템에서 사용자의 마지막 비밀번호 변경을 표시하는 명령을 찾으려고 노력 중입니다.

passwd -Sa 명령을 실행해 보았더니 00/00/0000 형식의 비밀번호 변경 날짜가 표시되었습니다. 하지만 나는 이 명령을 마지막으로 사용한 날짜만 나열하고 싶습니다. grep에 명령을 파이핑해 보았지만 구문이 정확하지 않은 것 같습니다.

이 명령의 결과에 대한 날짜 출력을 찾고 있습니다.

현재 시도된 명령:

grep $USER | passwd -Sa

내 오류에 대한 도움을 주시면 감사하겠습니다!

답변1

더 많은 정보를 제공해 주시면 더 나은 답변을 받으실 수 있습니다. 그런데 OpenSUSE에서 제가 본 것은

passwd -S -a

다음과 같이 의 각 항목에 대한 기록을 제공합니다 /etc/passwd.

thomas PS 03/01/2013 0 99999 7 -1

따라서 awk로 필터링할 수 있습니다.

passwd -S -a | awk -v user=$USER '{ if ( $1 == user ) { printf  "%s\n",  $3; } }'

그러나 passwd명령은 로 실행될 것으로 예상하므로 root스크립트는 $USER변수를 사용하는 것보다 더 우아한 작업을 수행해야 합니다(예:현재의사용자). 그 이유는 root공개되지 않은 내용을 읽고 있기 때문입니다./etc/shadow

당신이 사용할 수있는chage, 다른 보고서가 표시되지만 빠르게 확인하면 사용자 비밀번호를 묻는 메시지가 표시됩니다(아마도 원하는 것이 아닐 수 있음).

프로그램 chage을 사용하려면 섀도우 비밀번호 파일이 필요합니다.

chage명령은 다음으로 제한됩니다.뿌리-l 권한이 없는 사용자가 자신의 비밀번호나 계정이 만료되는 시기를 결정하는 데 사용할 수 있는 이 옵션은 제외됩니다 .

추가 자료:

답변2

이것은 숙제처럼 들리므로 다음과 같습니다.

  • sort원하는 경우 입력을 숫자로 정렬하거나 정의된 여러 열을 기준으로 정렬할 수 있습니다.
  • cut입력 열의 하위 집합을 인쇄하기 위해 열 구분 기호를 정의하는 데 문자 집합을 사용할 수 있습니다.
  • a | b명령의 출력을 acommand 로 보냅니다 b.
  • head그리고 tail파일의 첫 번째 줄과 마지막 줄을 각각 반환합니다.
  • 루트가 아닌 경우(예: 을 사용하는 경우 sudo) 일반적으로 다른 사용자에게 쿼리할 수 없습니다. 다음을 사용하면 이 문제(및 모든 grep핑) 를 피할 수 있습니다.passwd --status현재의사용자.
  • 네가 원한다면사용자가 정기적으로 비밀번호를 변경하는지 확인하세요.Linux 배포판에는 수년 동안 이 기능이 있었으므로 완전한 솔루션이 있다고 확신합니다.

관련 정보