본문 바로가기

별걸다하는 IT/리눅스 유닉스

[리눅스/Linux] 패스워드 관리 - 비밀번호 변경, 유효기간 지정 , 만료날짜 passwd, chage 명령어를 알아보자!

[리눅스/유닉스 LINUX/UNIX 목차]

 

안녕하세요~! 오늘은 패스워드 관련된 명령어와 파일에 대해 알아보도록 합시다.

대게 보안적인 이슈로 사용자마다 3개월마다 패스워드 변경하기 이런 조건이 있잖아요. 

저도 3개월마다 매번 패스워드를 변경해줘야 하는데 한 10개 넘는 서버에 들어가서 변경해주려니까 얼마나 귀찮은지... 아마 passwd 이 명령어를 엄청 자주 사용하게 될꺼예요.

PASSWD 사용 문법/ 기본 사용법

# passwd [OPTION] 사용자계정

passwd는 기본적으로 패스워드를 부여하거나 패스워드를 변경하는 명령이지만, 계정을 사용하지 못하게 하거나, 패스워드 만기일 및 유효기간 등을 설정할 수 있습니다.

 

[사용자 비밀번호 변경]

# passwd [id]

특정 사용자의 비밀번호를 변경하고 싶으면 passwd [사용자명]을 써주시면 됩니다. 그럼 새로운 패스워드를 입력하라고 나와요. 

사진출처:https://www.geeksforgeeks.org/passwd-command-in-linux-with-examples/

만약 계정을 안쓰고 passwd만 독단적으로 사용했을 경우에는 현재 로그인된 계정 비밀번호를 변경하라는 의미가 됩니다.

# sudo passwd

sudo passwd는 초기에 root 비번을 설정하는 데 사용돼요. 

PASSWD 옵션 및 사용 예시 

OPTIONS [주요 옵션]

리눅스 옵션 

옵션 의미
-a

-S옵션과 같이 쓰인다. all이라는 뜻으로 -Sa하면 모든 사용자에 대한 패스워드 정보를 보여준다.

-S (--status) 

사용자에 대한 패스워드 정보를 알 수 있다.

Display account status information. The status information consists of 7 fields.

-l 사용자의 패스워드에 잠금(lock)을 걸어 로그인을 막는다 (--lock)
-u 사용자에게 설정되어 있는 패스워드 잠금을 푼다 (--unlock)
-d 사용자의 패스워드를 제거한다. 패스워드 없이 로그인이 가능하다
-n 패스워드 변경까지의 최소 날짜를 설정한다. 즉, 패스워드 변경 후 최소로 사용해야 되는 날짜수이다.
-x 현재 패스워드의 유효기간을 지정한다. 즉 패스워드 최대 사용 가능한 날짜수이다.
-w 패스워드 만료 전 경고 날짜를 지정한다.
-i  패스워드 만료된 뒤에 사용자 계정 사용이 실제 로그인이 불가능하게 되기까지의 유예기간을 설정한다.
-e 다음 로그인 시에 반드시 패스워드를 변경하도록 할 때 사용한다.

 

사용 예시 examples

[패스워드 제거]

# passwd -d jhyang

jhyang의 패스워드를 제거합니다. 즉 /etc/shadow의 2번째 필드인 패스워드 부분의 내용이 삭제되며, 이 경우 패스워드 없이 아이디만 입력하면 로그인 되므로 주의해야 합니다.

 

[패스워드 최대 사용 기간 지정]

패스워드 최대 사용 기간을 지정할 수 있습니다. 보통 3개월 단위로 비번 변경하게끔 유도하려고 일케 하죠.

# passwd -x 90 jhyang

jhyang계정의 패스워드 사용 기간을 90일로 설정

잘 설정되었는지 확인하려면 passwd의 -S옵션을 사용해도 되고 chage 명령어를 사용해도 됩니다. -S옵션의 경우 다섯번째 필드가 패스워드 변경까지 남은 일자를 말해요. 즉 오늘 변경했으면 내가 설정한 일자만큼 남아있겠죠?

# chage -l jhyang 

# passwd -S jhyang

사용자 jhyang 패스워드 관련 정보를 확인한다. 

 

[패스워드 정보 보기]

앞에 -S옵션이 나온 김에 -S옵션에 대해 살펴봅시다.

# passwd -S jhyang 

사용자 jhyang의 비밀번호 관련 정보들 보여줘

해당 실습 사진으로 알 수 있는 것은, 관리자가 아닌 사용자라면 자기 계정 외에 남의 계정을 볼 수 없습니다.

# passwd -Sa 

모든 사용자계정의 비밀번호 정보들을 보여줘

-Sa는 관리자 root만이 사용할 수 있어요.

아무튼!! -S옵션으로 명령어를 쳐보면 총 7개의 필드들로 이루어진 내용이 나오는데, 각 필드가 의미하는 바는 아래와 같습니다.

 

첫번째 필드: 유저 로그인명

두번째 필드: 패스워드 잠김(L), 패스워드 없음 (NP), 사용가능한 패스워드 (P)

세번째 필드: 가장 최근에 패스워드 변경 일자

네번째 필드: 패스워드 변경까지 최소 일자

다섯번째 필드: 패스워드 변경까지 최대 일자

여섯번째 필드: 패스워드 만료를 알리는 경고 기간

일곱번째 필드: 패스워드가 만료되고 비번이 잠기기까지의 유예기간

 

[다음 로그인때 패스워드 변경 강제하기]

신입사원이 와서 관리자가 계정을 하나 만들어줄 때는 보통 비밀번호는 공통으로 만들어준다음에 스스로 변경하도록 합니다. 예를 들어 계정 jhyang 에 비밀번호 1234로 세팅한 다음 사원에게 알려주는거죠. 그럼 e옵션이 걸려있어서 사용자가 로그인하자마자 자신의 비밀번호로 변경을 해야만 접속이 가능하게 되는... 뭐 하나의 사용 예시일 뿐이지만 자주 사용되는 옵션이죠.

# passwd -e jhyang 

사용자 jhyang가 다음에 로그인했을때 비밀번호를 변경하도록 강제합니다.

 

[짬뽕 예시]

# passwd -n 3 -x 200 -w 5 -i 10 jhyang

jhyang의 패스워드는 최대 200일간 사용할 수 있고, 변경하면 최소 3일 동안은 변경할 수 없도록 설정합니다. 또한 패스워드 사용기한 만료 전 5일부터 경고 메시지를 보내주고, 패스워드 만료된 뒤에 약 10일간의 유예기간을 설정합니다. 

 

CHAGE 사용 문법/ 기본 사용법

passwd명령어만큼 비밀번호와 관련된 명령어가 하나 더 있는데요, 바로 chage입니다! 앞에 passwd예시에서 언급되었어가지고 보신 분은 있을 수도 있는뎁..ㅎ 근데 운영체제에 따라 해당 명령어를 지원하기도 하고 지원하지 않기도 하더라고요. 리눅스 우분투의 경우 있었는데, AIX UNIX의 경우 해당 명령어를 지원하지 않았습니다. 그러므로 man명령어로 꼭 확인해주기! 

# chage [OPTION] 사용자계정

chage는 사용자의 패스워드에 대한 정보를 출력하고 설정하는 명령어입니다. /etc/shadow(비밀번호 관련 저장 파일)의 날짜 관련 필드 설정을 모두 할 수 있는 명령입니다. passwd와 거의 공통된 기능을 가지고 있는데요 비밀번호 변경 중 날짜에 관련된 특화된 기능을 좀 더 가지고 있어요.

 

[사용자 비밀번호 정보 출력]

# chage -l [사용자계정]

# chage -l jhyang

사용자 jhyang의 비밀번호 관련 정보를 출력해라.

CHAGE 옵션 및 사용 예시 

OPTIONS [주요 옵션]

리눅스 man chage

옵션 의미
-l (소문자L) 사용자의 패스워드에 대한 정보를 보여준다.
-d (--lastday) 최근 패스워드를 바꾼 날을 수정합니다.
-m 패스워드 변경의 최소 날짜를 지정합니다. 즉 패스워드 변경 후 일정기간 사용해야될 최소 만기일을 지정합니다.
-M 패스워드 변경 없이 사용 가능한 최대 날짜를 지정합니다. 즉 한 번 설정한 패스워드의 만기일을 지정합니다.
-I (대문자i) 패스워드 최대 사용기간 만료 후에 실제 패스워드 잠금을 설정하기까지의 유예기간을 지정합니다.
-E 계정이 만기되는 날을 지정합니다. MM/DD/YY 또는 YYYY-MM-DD 형태로 지정.
-W 패스워드 만료 전 변경을 요구하는 경고 날짜를 지정합니다.

 

[비밀번호 관련 제한 아예 없애기]

# chage -I -1 -m 0 -M 99999 -E 1 jhyang

jhyang 게정 만기날짜 없애고, 비밀번호 사용기간 관련 제한도 없애고, 즉 그에 따른 유예기간 자체가 필요 없다!

-I -1 :유예기간을 -1로 설정하면 유예기간 사용 조건 X. 유예기간 없이 바로 비번 락 시키려면 -I 0 옵션을 사용해야 함. 

-m 0: 패스워드 사용해야하는 최소 조건 없음

-M 99999: 비밀번호 사용 가능 날짜가 따로 존재하지 않을 경우 이렇게 세팅. 

-E -1 : 계정 만기되는 날짜 없음

 

passwd와 chage 옵션 비교

같은 기능을 하는 것 같은데 옵션 알파벳은 다 달라서 헷갈릴 수 있어요 ㅎㅎ

  passwd chage
패스워드 정보 보기 -S -l
패스워드 변경 날짜 설정 X -d
패스워드 변경 최소 날짜 설정  -n -m
패스워드 변경 최대 날짜 설정 -x -M
패스워드 변경 경고 기간 설정 -w -W
패스워드 유예기간 설정 -i -I (대문자 i)
계정 만기 설정  X -E

기출문제

[1901회 리눅스마스터 1급 2차 실기]

다음은 사용자를 관리하는 계정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. idhuser 사용자가 패스워드 입력 없이 사용자명만 입력하면 로그인이 가능하도록 설정한다.
# ( ① ) ( ② ) idhuser
나. kaituser는 다음 로그인 시에 패스워드를 반드시 바꾸도록 설정한다.
# ( ① ) ( ③ ) kaituser
다. examuser의 패스워드가 만료된 후 3일이 지나면 로그인이 불가능하도록 설정한다.
# ( ① ) ( ④ ) examuser

■조건

- ①번은 해당 명령어를 기재한다.

- ②~④번은 명령어의 옵션 또는 옵션과 관련된 인자 값을 기재하는데, 옵션과 관련된 인자 값은 하나의 괄호로 처리한다. (예: -d /home/idhuser) 

답: 1. passwd  2. -d  3. -e 4. -i 3

끝~~! 오늘도 도움이 되는 포스팅이였길 바라면서~! 다음에 또 봐요~!