cut 명령을 사용하여 생성 날짜별로 정렬된 기존 사용자 목록을 표시합니다.

cut 명령을 사용하여 생성 날짜별로 정렬된 기존 사용자 목록을 표시합니다.

묻다:사용자가 성공적으로 추가되었는지 확인하려면 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두 번째 필드를 정렬 키로 사용함을 나타냅니다.

이렇게 하면 생성 날짜별로 정렬된 기존 사용자가 나열되며, 가장 오래된 사용자가 먼저 생성됩니다.

관련 정보