리눅스 passwd 명령어를 알아봅시다.

OS/리눅스 2023. 5. 27. 23:56

 안녕하세요. 이번 시간에는 리눅스 passwd 명령어를 알아보겠습니다.

 


 먼저 cho2 유저를 추가합니다. useradd -m cho2를 입력하면 cho2의 홈 디렉토리도 같이 생성합니다.

 

 passwd 명령어는 유저의 패스워드를 변경하는 명령어입니다. root의 비밀번호를 설정할 때에는 passwd만 입력하고 비밀번호를 재설정하면 됩니다. 생각보다 리눅스 초기 설정할 때 많이 쓰이게 되니 알아두면 좋습니다.

 

 cho2의 암호를 설정해 보겠습니다.

 

 다음에 su cho2를 입력합니다. 암호를 입력하면, 다른 쉘이 하나 뜨게 됩니다. whoami를 입력하면, 현재 접속하고 있는 유저를 알려주는데요. cho2라고 되어 있습니다. cho2로 로그인을 성공했습니다.

 


 여기서 끝나면 뭔가 섭섭할 거 같으니, 다른 작업을 해 보겠습니다. 계정 비활성화, 잠금을 하는 방법도 같이 알아봅시다.

 

 passwd의 -l은 패스워드를 lock 합니다. 패스워드 인증 방식을 쓰지 못하게 만듭니다. 이 옵션은 단순하게 패스워드를 못 쓰게 만드는 것일 뿐입니다. 인증 방법은 패스워드 말고도 많습니다. ssh 키와 같은 것으로도 인증할 수 있어요. 이런 것까지 막지는 못해요. note는 이를 의미합니다.

 

 한 번 실습해 봅시다.

 

 

 passwd -l cho2를 입력해 보겠습니다. 그러면, password changed.가 뜨는데요.

 

 패스워드의 맨 앞에 !가 붙어있음을 볼 수 있습니다. 이는 패스워드를 쓰지 못한다는 것을 의미합니다. 다시 su cho2를 입력해서 인증을 시도해 보겠습니다.

 

 암호를 올바르게 입력해도 되지 않습니다.

 


 그런데 암호 말고도 인증할 방법은 많다고 했습니다. 대표적으로 ssh에 이용하는 private key입니다.

 

 이것을 이용해서 cho2 계정에 ssh로 접속해 보겠습니다.

 

 접속이 됩니다. 이는 password로 인증을 하지 않았기 때문입니다.

 


 진짜로 유저를 deactivate를 시키려면 usermod를 이용해야 합니다. usermod cho2 --expiredate 1을 입력해 보겠습니다. 이는 만료일이 1970년 x월 x일이라는 의미입니다.

 

 이 명령을 적용한 후에 다시 su cho2로 로그인을 시도해 보겠습니다. 그러면, cho2의 계정이 만료되었다고 뜨면서 관리자에게 문의하라는 에러가 뜨게 됩니다.

 

 shadow 파일을 보면, 마지막 필드에 1이라고 쓰여져 있음을 볼 수 있습니다. 이는, 계정이 만료된 date를 의미합니다. 1970년 1월 1일부터의 날을 의미하니 --expiredate 1의 의미는 1970년 어느 날에 만료가 되었다는 의미입니다. 계정을 expire, 즉 비활성화 시키는 것만으로도 못 쓰게 만들 수 있다. 정도만 알아두셔도 되겠습니다.