내 데비안 서버에 설치된 주요 프로그램 각각에 대한 사용자 계정을 만들고 싶습니다. 예를 들어 다음 프로그램의 경우:
Tomcat Nginx 감독자 PostgreSQL
이것은 내가 온라인에서 읽은 내용을 바탕으로 권장되는 것 같습니다. 그러나 나는 이러한 사용자 계정을 가능한 한 제한하여 쉘 로그인이 없고 다른 프로그램에 액세스할 수 없으며 최대한 제한되지만 여전히 작동하도록 하고 싶습니다.
이것이 어떻게 달성될 수 있는지 말해 줄 사람이 있습니까? 지금까지 내가 읽은 내용은 다음과 같습니다.
echo "/usr/sbin/nologin" >> /etc/shells useradd -s /usr/sbin/nologin tomcat
하지만 더 완전한 방법이 있을 수 있다고 생각합니다.
편집 : 데비안 스퀴즈를 사용하고 있습니다
답변1
어떤 배포판을 실행하고 있나요? 좋은 배포판은 이미 별도의 사용자로 실행하면 이점을 얻을 수 있는 데몬 관련 사용자를 생성하기 위해 해당 패키지에 대한 설치 스크립트를 설정했습니다. 일부 패키지는 다양한 파일을 공동으로 읽고 써야 하는 사용자를 공유합니다. 그러나 모든 경우에 로그인 쉘을 사용하는 경향이 있으며 nologin
이는 적절합니다.
답변2
이 글이 당신에게 도움이 될지 아닐지는 모르겠습니다.
이러한 사용자 계정을 최대한 제한하고 싶습니다.쉘 로그인이 없도록
이를 위해 사용자 계정을 만들기 전에 /etc/default/useradd
파일 을 편집하십시오.
이것
1 # useradd 기본 파일 2 그룹=100 3 집=/집 4 비활성=-1 5 만료= 6 쉘=/bin/bash 7 SKEL=/etc/skel 8 CREATE_MAIL_SPOOL=예
이에
1 # useradd 기본 파일 2 그룹=100 3 집=/집 4 비활성=-1 5 만료= 6 SHELL=/bin/nologin 7 SKEL=/etc/skel 8 CREATE_MAIL_SPOOL=예
이를 변경한 후 사용자 계정을 생성하면 해당 모든 계정에 대해 시스템에 로그인할 수 없습니다.
바로 이것 때문이에요
사용자:x:1017:1017::/홈/사용자:/bin/노로그인-----> /etc/passwd 파일 항목
여기를 보아라
[max@localhost ~]$ su - 사용자 비밀번호: su: /bin/nologin: 해당 파일이나 디렉터리가 없습니다. [max@localhost ~]$
파일을 직접 편집하여 얻을 수 있습니다. /etc/passwd
편집할 필요가 없습니다./etc/default/useradd
사용자 수가 적은 경우 파일
그냥 마지막 파일을 바꾸세요
이것
사용자:x:1017:1017::/home/사용자:/bin/bash
이에
사용자:x:1017:1017::/home/사용자:/bin/nologin