묻다:사용자가 성공적으로 추가되었는지 확인하려면 cut 명령을 사용하여 모든 사용자를 나열하십시오.
질문:목록이 매우 길어서 사용자를 찾으려면 출력을 스크롤해야 합니다.
필요:사용자 생성 날짜를 기준으로 정렬합니다. 생성 날짜를 표시하는 것은 필수는 아니지만 이점이 있습니다.
시험을 마친:
cut -d : -f 1 /etc/passwd | sort -t
cut -d : -f 1 /etc/passwd | sort -t':' -k2n
cut -d : -f 1 /etc/passwd | ls
답변1
파일 /etc/passwd
에는 날짜 정보가 없으므로 여기서는 도움이 되지 않습니다.
시스템 사용자가 아닌 모든 사용자를 위한 디렉토리가 있어야 합니다 /home/%username%
. /home
(셸 루프를 사용하여) 아래의 모든 디렉터리에 액세스하고 각 디렉터리에서 가장 오래된 파일이나 디렉터리를 보고할 수 있습니다 . 좋다:
$ for dir in /home/*; do
ls -lart --time-style=long-iso "${dir}" |
grep '^-' | head -n 1 |
awk '{ printf ("%-10s %s\n", $3, $6); }'
done
ls: cannot open directory '/home/lost+found': Permission denied
paul 2017-03-16
1001 2021-03-02
운이 좋게도 파일 역날짜를 사용하는 사람이 없다면 touch
사용자 이름(또는 삭제된 경우 숫자 uid)과 홈 디렉터리에서 가장 오래된 파일의 날짜가 표시됩니다.
일반적으로 구문 분석의 출력은 건강하지 않지만 ls
필요한 필드는 상당히 예측 가능합니다.
/home/viewer 디렉토리(셸 확장 순서를 결정함)가 있기 때문에 출력 순서가 이상해 보이지만 사용자 뷰어는 제거되었으며 uid는 1001입니다.
사용자를 찾기 위해 왜 목록을 스크롤해야 하는지, 날짜별로 정렬하면 왜 이 작업이 더 쉬워지는지 잘 모르겠습니다. 출력을 파일로 리디렉션하고 편집기를 사용하여 검색하거나, grep을 사용하여 사용자 이름을 찾거나, 출력을 두 번째 열을 기준으로 정렬할 수 있습니다.
사용자를 추가하는 경우 작동을 증명하는 전통적인 방법은 해당 사용자로 로그인하여 기본 비밀번호를 변경하고 로컬 요구 사항(예: 표준 프롬프트 또는 별칭)을 수정하고 몇 가지 간단한 명령이 작동하는지 확인한 다음 확인하는 것입니다. 새로운 사용자가 처음 로그인할 때 로그인할 때 자신의 비밀번호를 설정하세요.
답변2
질문: 사용자가 성공적으로 추가되었는지 확인하려면 cut 명령을 사용하여 모든 사용자를 나열하십시오.
추가가 성공했는지 확인해야 하는 경우 간단히 확인할 수 있습니다.
$ cut -d: -f1 <(getent passwd user)
문제: 목록이 매우 길어서 사용자를 찾으려면 출력을 스크롤해야 합니다.
위에서 언급한 것처럼 익숙한 도구를 사용하여 출력을 필터링하기만 하면 getent
필터링도 가능합니다.
요구사항: 사용자 생성 날짜를 기준으로 정렬하세요. 생성 날짜를 표시하는 것은 필수는 아니지만 이점이 있습니다.
시스템에 비밀번호 정책이 없고 사용자가 프로비저닝된 이후 사용자 비밀번호가 변경되지 않은 경우, 이 chage
명령을 사용하여 비밀번호가 마지막으로 변경된 날짜를 가져올 수 있습니다. 이 날짜는 비밀번호가 생성된 날짜일 가능성이 높습니다. 구성은 월 열 2를 기준으로 정렬됩니다.
cut -d: -f1 <(getent passwd) | while read -r line; do
c_date=$(sudo chage --list "$line" | awk -F: '/Last password change/{print $NF}')
printf '%s\t%s\n' "$line" "$c_date"
done | sort -k4n -k3n -k2M
답변3
cut -d: -f1,3 /etc/passwd | sort -k2n
cut -d: -f1,3 /etc/passwd
첫 번째 필드(사용자 이름)와 세 번째 필드(생성 날짜)를 추출합니다.sort -k2n
출력은 두 번째 필드(생성 날짜)를 기준으로 숫자 오름차순(-n 플래그)으로 행을 정렬하는 정렬로 파이프됩니다.
이-k2
옵션은sort
두 번째 필드를 정렬 키로 사용함을 나타냅니다.
이렇게 하면 생성 날짜별로 정렬된 기존 사용자가 나열되며, 가장 오래된 사용자가 먼저 생성됩니다.