사내 웹 애플리케이션을 새 서버에 올리는 날, 관리자는 애플리케이션 프로세스를 root로 띄우지 않기 위해 먼저 전용 계정과 데이터 디렉터리를 준비합니다. 애플리케이션이 업로드 파일이나 캐시를 쓸 공간을 만들어 두고, 그 공간의 주인을 애플리케이션 계정으로 맞춰야 프로세스가 권한 오류 없이 파일을 기록할 수 있습니다.
리눅스에서 모든 프로세스는 자신을 실행한 계정의 권한으로 동작하고, 파일과 디렉터리는 소유자와 소유 그룹을 하나씩 가집니다. 그래서 서비스용 계정을 만들 때는 그룹 생성 도구(groupadd)로 권한을 묶을 그룹을 먼저 마련하고, 계정 생성 도구(useradd)로 사용자를 만들면서 기본 그룹과 로그인 셸을 정해 준 뒤, 소유권 변경 도구(chown)로 디렉터리의 주인을 바꿉니다. 로그인 셸을 nologin 계열로 지정하는 것은 사람이 이 계정으로 직접 접속하는 경로를 막아 두는 관행입니다.
흔히 혼동하는 지점은 '로그인 셸을 nologin으로 두는 것'과 '계정을 잠그는 것'입니다. 전자는 대화형 로그인만 차단하고 프로세스 실행과 파일 소유는 그대로 가능하지만, 후자는 비밀번호 인증 자체를 무력화하는 별개의 조치입니다. 서비스 계정 설계와 디렉터리 소유권 정리는 RHCSA와 리눅스마스터 같은 자격증 실기에서 반복 출제되며, 서버 운영자와 데브옵스 엔지니어의 초기 구축 업무에서 매번 마주치는 작업입니다.