개발 창고/Server

[Linux] How to assign or change a password to an account

로이제로 2023. 11. 8. 22:00
반응형

 

How to assign or change a password to an account

 계정을 관리하는 /etc/passwd에서는 계정의 비밀번호가 x로 표기되며 다른 곳에서 관리됩니다. 이 별도의 관리 파일이

/etc/shadow

입니다. shadow에서는 비밀번호뿐만 아니라, 해당 비밀번호에 대해 암호화 방식이나 가능 기간, 만료 기간등을 관리하게 됩니다.

 

/etc/shadow

 우선 아래와 같이 shadow의 속성을 확인해보면

$> ls -alt /etc | grep shadow

/etc 디렉토리 내에 shadow라는 명칭이 들어간 파일 또는 디렉토리 결과

 해당 권한이 소유주인 root (관리자 계정)만 read / write가 가능하고, shadow그룹에서는 read만 그 외의 다른 계정에서는 읽거나 쓸 수 없음을 알 수 있습니다. 때문에 shadow를 확인하기 위해서는 아래와 같이 명령어를 실행하여 확인할 수 있습니다. 각 항목은 콜른(:)으로 구분됩니다.

$> sudo cat /etc/shadow
user1:$6$/Mo3V.nIaGw~~~~~~~~~~~~~f7GC1Mb1:19492:0:99999:7:::
필드 설명
계정 명 사용자의 계정을 의미합니다.
패스워드 $로 구분되어지며 아래와 같은 로직을 갖습니다.

$algorithmId$salt$encryptedPassword

$algorithmId : 암호학적 해시 ID를 의미
1: MD4(가장 취약한 일방향 해쉬로 요즘에는 거의 쓰이지 않습니다.)
2: BlowFish
5: SHA-256
6: SHA-512

$salt : 각 해시에 첨가할 랜덤 값. 이 랜덤 값에 encryptedPassword의 값이 바뀜

$encryptedPassword : 알고리즘과 salt로 패스워드를 암호화 한 값

* : 패스워드가 잠긴 상태. 로그인 불가. 별도의 인증방식을 이용하여 로그인 가능
! : 패스워드가 잠긴 상태. 로긍니 불가. 또는 계정 생성 후 패스워드 설정하지 않은 상태
공란 : 패스워드가 설정되지 않았지만 로그인이 가능한 상태
마지막 변경 패스워드가 변경된 마지막 일자 (1970년 1월 1일 기준 경과 일 수)

ex) 19492
1970년 1월 1일 기준으로 19492일 이후에 비밀번호가 변경되었음을 의미합니다.
최소 사용일수 패스워드 마지막 변경일 기준으로 패스워드가 변경 불가한 최소 일 수 (0은 제한 없음)
최대 사용일수 패스워드 마지막 변경일 기준으로 사용 가능한 최대 일 수
경고 패스워드 만료 이전에 경고할 경고일 수
비활성화 패스워드 만료된 후 계정이 잠기기까지 비활성 대기 일 수. 해당 비활성 기간 동안 패스워드를 변경해야 계정이 잠기지 않음
만료일 계정 만료일 (1970년 1월 1일 기준 경과 일 수)
반응형