[리눅스] nologin 계정이란? /etc/passwd 쉘 로그인 권한 제거 방법

Linux에서 nologin 계정이란?

/sbin/nologin이란?
nologin 되어있으면 shell 로그인 자체가 불가한 계정을 의미합니다. 일반적으로 cmd, putty, 하이탐, mobaxterm 등 서버 접근 제어 프로그램을 이용해서 SSH 로그인 되는 것을 못하게 막습니다.

일반 계정은 만들어질 때 /bin/sh에 할당되어 기본적으로 쉘 로그인이 허용됩니다.
하지만 nologin 유저는 /sbin/nologin에 할당 되며 쉘 로그인이 불가합니다.

nologin 계정의 목적

임시 정지 계정 또는 FTP, SMTP, POP3 등의 기타 목적을 위해 생성하는 계정입니다.

nologin 계정을 직접 만들어 보면서 실습해 보도록 하겠습니다.

 

/etc/shells

# cat /etc/shells


/etc/shells 에서 nologin이 있는지 확인해 줍니다. 기본적으로 생성되어 있지  않은 경우도 있으니 확인을 해줘야 합니다.

nologin 생성

# echo "/sbin/nologin" >> /etc/shells

nologin 쉘을 생성해 줍니다.

 

참고로 > 는 생성하기 덮어쓰기, >>는 아래줄에 덧붙이기 추가하기입니다.

유저만들기

현재는 TestUser로 쉘 로그인이 가능합니다.
이제 TestUser의 쉘 로그인을 막아보겠습니다.
TestUser의 쉘 접근을 막기 위해 nologin 으로 이동 시켜 줍니다.

# usermod -s /sbin/nologin TestUser

 

유저에 nologin을 부여하고 다시 su로 로그인 시도를 해조면

 

this account is currently not available

 

"이 계정은 현재 사용할 수 없습니다" 라는 메시지와 함께 쉘 로그인이 차단 됩니다.

댓글

Designed by JB FACTORY