![사용자에게 홈 디렉토리나 비밀번호가 있는지 확인하는 방법은 무엇입니까?](https://linux55.com/image/201752/%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%20%ED%99%88%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%82%98%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EA%B0%80%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
사용자를 생성하는 방법에 대한 자세한 내용을 찾을 수 있는 곳입니다. 사용자의 현재 상태는 어떻습니까?
예를 들어, 등을 사용하여 명령을 adduser
실행할 수 있습니다.--no-create-home
--disabled-password
--home DIR
사용자에게 홈 디렉토리가 있는지 알려주는 명령이 있습니까? 홈 디렉토리가 있는 경우 해당 디렉토리의 위치는 무엇입니까?
또는 사용자에게 비밀번호가 있는 경우.
답변1
바라보다man 5 passwd
비밀번호 입력 형식입니다. 각 사용자에게는 콜론으로 구분된 여러 필드가 있습니다. 홈 디렉터리는 여섯 번째 필드이므로
getent passwd user | cut -d: -f6
표시될 홈 디렉토리입니다 user
. 이는 디렉토리가 존재한다는 의미는 아니며 디렉토리가 존재한다는 의미입니다. 이건 개별적으로 확인하셔야 합니다.
homedir="$(getent passwd user | cut -d: -f6)"; [ -d "$homedir" ] && printf "User %s's home directory is %s and exists.\n" user "$homedir"
비밀번호는 두 번째 필드입니다. 일반적으로 는 x
비밀번호 해시가 에 있음을 나타냅니다 /etc/shadow
. 또는 *
은 이 계정에 대한 비밀번호 액세스가 비활성화되었음을 나타냅니다( *
에도 있음 /etc/shadow
). passwd
계정이 비활성화되었는지 확인하려면 실제로 사용해야 합니다 .이 답변더 알아보기.
[ "$(passwd -S user | cut -d\ -f2)" = P ] && printf "User %s has a password.\n" user