Linux에서 nologin 계정이란?
/sbin/nologin이란?
nologin 되어있으면 shell 로그인 자체가 불가한 계정을 의미합니다. 일반적으로 cmd, putty, 하이탐, mobaxterm 등 서버 접근 제어 프로그램을 이용해서 SSH 로그인 되는 것을 못하게 막습니다.
일반 계정은 만들어질 때 /bin/sh에 할당되어 기본적으로 쉘 로그인이 허용됩니다.
하지만 nologin 유저는 /sbin/nologin에 할당 되며 쉘 로그인이 불가합니다.
nologin 계정의 목적
임시 정지 계정 또는 FTP, SMTP, POP3 등의 기타 목적을 위해 생성하는 계정입니다.
nologin 계정을 직접 만들어 보면서 실습해 보도록 하겠습니다.
# cat /etc/shells
/etc/shells 에서 nologin이 있는지 확인해 줍니다. 기본적으로 생성되어 있지 않은 경우도 있으니 확인을 해줘야 합니다.
# echo "/sbin/nologin" >> /etc/shells
nologin 쉘을 생성해 줍니다.
참고로 > 는 생성하기 덮어쓰기, >>는 아래줄에 덧붙이기 추가하기입니다.
현재는 TestUser로 쉘 로그인이 가능합니다.
이제 TestUser의 쉘 로그인을 막아보겠습니다.
TestUser의 쉘 접근을 막기 위해 nologin 으로 이동 시켜 줍니다.
# usermod -s /sbin/nologin TestUser
유저에 nologin을 부여하고 다시 su로 로그인 시도를 해조면
this account is currently not available
"이 계정은 현재 사용할 수 없습니다" 라는 메시지와 함께 쉘 로그인이 차단 됩니다.