Linux에서 제한된 사용자 계정을 만드는 방법

Linux에서 제한된 사용자 계정을 만드는 방법

내 데비안 서버에 설치된 주요 프로그램 각각에 대한 사용자 계정을 만들고 싶습니다. 예를 들어 다음 프로그램의 경우:

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

관련 정보