Post

passwd로 비밀번호 바꾼 직후 su가 실패할 때 — chage 트랩

/etc/shadow의 최소 변경 주기 때문에 막 만든 비밀번호로도 인증이 거부되는 경우

passwd로 비밀번호 바꾼 직후 su가 실패할 때 — chage 트랩

새로 만든 계정에 passwd로 비밀번호를 설정한 직후 su - username을 시도했는데 Authentication failure로 거절당하는 경우가 있다. 비밀번호는 맞다. 원인은 /etc/shadow에 박힌 최소 변경 주기다.

증상

1
2
3
4
5
6
sudo passwd shine
# 새 비밀번호 입력 + 확인 → "all authentication tokens updated successfully"

su - shine
# Password: <방금 만든 비밀번호>
# su: Authentication failure

비밀번호도 맞는데 거절당하는 게 핵심이다.

원인

/etc/shadow의 해당 사용자 라인:

1
2
3
grep shine /etc/shadow
# shine:$6$...:20559:1:90:7:::
#                  ^ 최소 변경 주기 (일)

각 컬럼의 의미:

컬럼의미
1사용자명
2해시된 비밀번호
3마지막 변경일 (epoch days)
4최소 변경 주기 (일) — 0이 아니면 그 기간 동안 변경/인증 제한
5최대 사용 가능 일수
6만료 경고 일수

1 이상이면 비밀번호를 막 만들었어도 인증이 거부될 수 있다.

해결

1
2
sudo chage -m 0 -M -1 shine    # 최소 일수 0, 만료 없음
sudo chage -l shine             # 확인

chage -l이 보여주는 값:

1
2
Minimum number of days between password change   : 0
Maximum number of days between password change   : -1

이제 su - shine이 동작한다.

우회 (급할 때)

당장 root에서 작업해야 하는데 chage를 만질 시간이 없다면:

1
sudo su - shine    # 비밀번호 묻지 않고 전환

root는 비밀번호 우회가 되니까 임시 작업에 활용 가능.

핵심 정리

passwd 직후 인증 실패면 비밀번호를 의심하지 말고 /etc/shadow의 최소 변경 주기를 본다. chage -m 0으로 해결.

This post is licensed under CC BY 4.0 by the author.