Tomcat RHEL/CentOS용 그룹 및 사용자 생성

Tomcat RHEL/CentOS용 그룹 및 사용자 생성

Tomcat 설치를 위한 사용자를 생성하고 싶지만 여러 옵션을 살펴보았습니다.

# groupadd tomcat
#
# useradd -g tomcat -d /usr/local/tomcat tomcat
# useradd -g tomcat -c "Tomcat User" -d /usr/local/tomcat tomcat

다른 대안:

https://panovski.me/install-tomcat-8-on-centos-7/

# useradd -r -s /sbin/nologin tomcat
# chown -R tomcat: /usr/local/tomcat

다른 페이지에서 (숨겨지고 재귀적으로)

# useradd -r tomcat --shell /bin/false
# chown -hR tomcat: /usr/local/tomcat

다른 옵션:?

# useradd -g tomcat -s /bin/bash -d /usr/local/tomcat tomcat
# chown -Rf tomcat.tomcat /usr/local/tomcat

오류나 결과가 무엇인지 모르겠습니다. 최선의 선택이 무엇인지 알고 싶습니다.

숨기려면 -h를 사용하는 것이 좋다고 생각합니다만,

- 파일 소유자 및 그룹 변경

-r, --system
  Create a system account.

  System users will be created with no aging information in /etc/shadow, and their 
  numeric identifiers are chosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in
  /etc/login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the
  creation of groups).

  Note that useradd will not create a home directory for such an user, regardless
  of the default setting in /etc/login.defs (CREATE_HOME). You have to specify the
  -m options if you want a home directory for a system account to be created.

-s, --shell SHELL
  The name of the user's login shell. The default is to leave this field blank,
  which causes the system to select the default login shell specified by the SHELL
  variable in /etc/default/useradd, or an empty string by default.

CentOS에서 -s 또는 -r 옵션을 사용해야 합니까?

편집 2

# useradd -r UserL5C --shell /bin/false
# more /etc/passwd | grep UserL5C
UserL5C:x:494:491::/home/UserL5C:/bin/false
# more /etc/group | grep UserL5C
UserL5C:x:491:
# finger UserL5C
Login: UserL5C                  Name: 
Directory: /home/UserL5C                Shell: /bin/false
Never logged in.
No mail.
No Plan.
# 

사용자L5C500 미만의 UID 및 GID

# useradd UserG5C --shell /bin/false
# more /etc/passwd | grep UserG5C
UserG5C:x:503:504::/home/UserG5C:/bin/false
# more /etc/group | grep UserG5C
UserG5C:x:504:
# finger UserG5C
Login: UserG5C                  Name: 
Directory: /home/UserG5C                Shell: /bin/false
Never logged in.
No mail.
No Plan.
#

사용자G5CUID 및 GID가 500보다 큼

# ls -al /home/
total 32
drwxr-xr-x.  5 root       root        4096 Jun 25 06:05 .
dr-xr-xr-x. 25 root       root        4096 Jun 25 05:19 ..
drwx------. 33 IntUser    IntUser     4096 Jun 25 05:46 IntUser
drwx------.  2 root       root       16384 Jun 13 09:56 lost+found
drwx------.  4 UserG5C    UserG5C     4096 Jun 25 06:01 UserG5C
# 

차이점사용자G5C홈 디렉토리 생성

질문

사용하는 것이 가장 좋습니다: useradd UserG5C -M -s /bin/false이 사용자/계정에는 시스템 권한이 없기 때문에?

답변1

사람 수만큼 의견도 많습니다. Tomcat 사용자를 생성하는 가장 좋은 방법은 다음과 같습니다.

# useradd -r -s /sbin/nologin tomcat
# chown -R tomcat: /usr/local/tomcat

이는 시스템 계정을 생성한다는 의미입니다. 정보 출처 man useradd:

System users will be created with no aging information in /etc/shadow,
and their numeric identifiers are chosen in the SYS_UID_MIN-SYS_UID_MAX
range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their
GID counterparts for the creation of groups).

또한 useradd -r ...사용자와 동일한 이름으로 그룹을 생성하므로 직접 생성할 필요가 없습니다.

그런데 사용자 구성에서 무언가를 변경하기로 결정한 경우(예: 홈 디렉터리 지정 또는 셸 변경) 언제든지 usermod명령을 사용하여 변경할 수 있습니다.

읽고 .man useraddman usermod

편집하다

실제로 몇 가지 질문에 답해야 합니다.

  1. 시스템 사용자(UID < 500)가 필요합니까?
  2. 쉘이 필요합니까, 아니면 쉘 액세스( )를 비활성화하시겠습니까 /sbin/nologin, /bin/false?
  3. 사용자의 홈 디렉토리가 필요합니까(그런데 Tomcat이 아마도 그것을 원할 것입니다)?

좋습니다. UID < 500을 원하지 않고 홈 디렉터리(현재는 존재하지 않음)를 원합니다. 다음 명령을 실행해 보겠습니다.

# useradd -U -d /usr/local/tomcat -m -s /bin/false tomcat

옵션을 선택하면 -U같은 이름의 그룹이 생성됩니다. 사용자 설명을 추가하려면 를 사용하세요 -c "Tomcat user".

Tomcat 디렉터리가 이미 있는 경우:

# useradd -U -d /usr/local/tomcat -M -s /bin/false tomcat

그런 다음 Tomcat 디렉토리의 소유자를 변경해야 합니다(Tomcat 사용자가 이를 사용할 수 있도록).

# chown -R tomcat: /usr/local/tomcat

편집 2

당신이 물었고 우리는 대답했습니다.

  1. 사용자의 UID가 500 미만인 경우 이는 일반 사용자(아마도 쉘 액세스 권한이 있는 사람)가 아닌 일부 서비스의 사용자임을 의미합니다. 이러한 사용자는 운영 체제에서 특별히 취급되지 않으므로 취약점이 발생하지 않습니다. 그리고 확장된 기능을 제공하지 않습니다. UID < 500을 사용하는 것이 나쁜 이유는 단 한 가지입니다. 나중에 일부 RPM 패키지를 설치하면 사용자에게 동일한 UID가 제공됩니다. 이 경우 몇 가지 문제가 발생합니다. 그게 다야! 그건 그렇고, RPM에서 tomcat을 설치하면 사용자 tomcat에 UID=91 및 GID=91인 그룹이 제공됩니다(적어도 내 Fedora에서는).
$ id tomcat
uid=91(tomcat) gid=91(tomcat) groups=91(tomcat)
  1. 좋습니다. /bin/false또는 를 사용하세요 /sbin/nologin.

  2. /일부 소프트웨어 패키지처럼 서비스의 홈 디렉터리를 지정할 수 있습니다 . 예를 들어, RPM에서 tcpdump를 설치한 경우 다음 문자열이 있습니다 /etc/passwd.

tcpdump:x:72:72::/:/sbin/nologin

이 경우 useradd키와 함께 명령을 사용하십시오.-d /-M

반면에 RPM에서 설치된 Tomcat의 홈 디렉터리는 다음과 같습니다.

tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/bin/nologin

이제 말을 덜 하세요 chown.

다음 명령은 동일한 작업을 수행합니다.

chown tomcat:tomcat /usr/local/tomcat
chown tomcat: /usr/local/tomcat

인용 출처 man chown:

누락된 경우 그룹은 변경되지 않지만 OWNER 기호 뒤에 ":" 힌트가 있으면 로그인 그룹으로 변경됩니다.

.소유자/그룹 구분 기호로 사용하는 것은 이제 더 이상 사용되지 않습니다 . 사용 :.

답변2

useradd -m -d /home/thenewuser -s /bin/bash -c "the new user" -U thenewuser

-c "메시지": 사용자에 대한 추가 정보입니다.

-U 신규 사용자: 사용자와 동일한 이름으로 그룹을 생성하고 해당 그룹에 사용자를 추가합니다.

-N: -N 매개변수는 사용자 이름으로 그룹을 생성하지 않도록 시스템에 지시합니다.

-m, --홈 페이지 생성동일: 사용자의 홈 디렉터리가 없으면 만듭니다.

-d, --home HOME_DIR: HOME_DIR을 사용자의 로그인 디렉터리 값으로 사용하여 새 사용자를 생성합니다.
만약에-디기본 홈 디렉토리를 사용하지 않으면 /home/thenewuser가 됩니다.

-m -d /데이터/새 사용자: 이것-중매개변수는 -d 매개변수로 지정된 /data/thenewuser 홈 디렉토리를 생성합니다.

-중: -M 매개변수는 시스템에 홈 디렉토리를 생성하지 않도록 지시합니다.

-s /bin/bash: 이것-에스사용자의 기본 셸(이 경우 /bin/bash)을 지정하는 데 사용됩니다.

-s 또는 --shell그것은 동일합니다.

-s /sbin/nologin: 이것/sbin/nologin페도라 및/usr/sbin/nologinDebian의 경우 "이 계정을 사용할 수 없습니다"와 같은 정중한 메시지를 반환하고 시스템에 로그인하는 것을 허용하지 않는 두 개의 셸이 있습니다. 메시지를 사용자 정의할 수 있습니다.

-s /bin/false: 사용자 로그인을 거부하는 데 사용되는 오래된 쉘입니다. /bin/false는 false가 있으면 즉시 종료됩니다. 기본 셸이 /bin/false 또는 /bin/true인 사용자 계정은 잠겨 있습니다.

-s /sbin/nologinunix-linux에 속하며 /bin/false는 GNU Coreutils의 일부입니다. 이러한 쉘이 작동하려면 /etc/shells 파일에 나열되어 있어야 합니다.

/sbin/nologin(또는 /usr/sbin/nologin)을 사용하는 사용자는 ssh 또는 ftp를 통해 연결할 수 있지만 /bin/false를 사용하는 사용자는 시스템에서 완전히 잠깁니다.

그리고사용자 추가 -D: 다음 명령을 사용하여 생성하려는 새 사용자에 대해 설정된 기본 매개변수를 볼 수도 있습니다.

# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
#

다른 대안을 확인하세요.http://www.golinuxhub.com/2014/04/10-practical-examples-to-use-useradd.html

-아르 자형: -r 매개변수는 시스템 사용자를 생성하는 데 사용됩니다.

사용자 확인

손가락

# finger mysql
  Login: mysql                      Name: 
  Directory: /home/mysql            Shell: /bin/bash
  Never logged in.
  No mail.
  No Plan.
# 

CentOS 6에는 이 명령이 없지만 쉽게 설치할 수 있습니다.

냠 설치 손가락

.

other ` http://www.tecmint.com/add-users-in-linux/

답변3

useradd -m -c "Tomcat User" -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
tar -xvf apache-tomcat-9.0.53.tar.gz -C /opt/tomcat --strip-components=1
chown -R tomcat: /opt/tomcat
sh -c 'chmod +x /opt/tomcat/bin/*.sh' 

관련 정보