Criando grupo e usuário para o Tomcat RHEL / CentOS

3

Eu quero criar um usuário para a minha instalação do Tomcat, mas eu estava visualizando várias opções:

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

Outra alternativa:

link

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

Em outra página (oculta e recursiva)

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

Outra opção:?

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

Eu não sei qual é o erro ou consequência, eu quero saber qual é a melhor opção

Acho melhor usar -h escondido, mas

chown - altera o proprietário e o grupo do arquivo

-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.

No CentOS é necessário usar as opções -s ou -r?

EDIT 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.
# 

UserL5C com UID e GID menor que 500

# 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.
#

UserG5C UID e GID maior que 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
# 

A diferença UserG5C cria o homeDirectory

Pergunta

Seria melhor usar: useradd UserG5C -M -s / bin / false porque este usuário / conta não tem privilégios de sistema?

    
por QA_Col 24.06.2015 / 14:44

2 respostas

3

Existem tantas opiniões quanto pessoas. Acho que a melhor maneira de criar o usuário do tomcat é o seguinte:

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

Isso significa que você criará conta do sistema. Informações de 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).

Além disso, useradd -r ... cria o grupo com o mesmo nome do usuário e você não precisa criar sozinho.

BTW, se você decidir alterar algo na configuração do usuário (por exemplo: especificar o diretório home ou alterar o shell), você sempre poderá fazê-lo com o comando usermod .

Leia man useradd e man usermod .

Editar

Realmente você deve responder algumas perguntas:

  1. Você precisa de usuário do sistema (com UID < 500)?
  2. Você precisa de shell ou deseja desativar o acesso ao shell ( /sbin/nologin, /bin/false )?
  3. Você precisa do diretório home desse usuário (BTW, o tomcat talvez queira tê-lo)?

Ok, você não quer o UID < 500 e quer diretório home (não existe agora), vamos fazer o seguinte comando:

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

A opção -U criará o grupo com o mesmo nome. Se você quiser adicionar uma descrição do usuário, use -c "Tomcat user" .

Se você já tem o diretório tomcat:

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

Depois disso, você deve alterar o proprietário do diretório tomcat (para permitir que o usuário do tomcat trabalhe com ele):

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

Editar 2

Você pediu, estamos respondendo.

  1. Se seu usuário tiver UID < 500 significa apenas que é o usuário de algum serviço, não usuário comum (possivelmente humano, que tenha acesso shell). Isso não lhe trará a vulnerabilidade porque esses usuários não são tratados especialmente pelo sistema operacional. Também não lhe dará funcionalidade estendida. Apenas uma coisa porque não é bom usar UIDs < 500: você pode instalar alguns pacotes RPM no futuro e fornecerá ao usuário o mesmo UID. Nesse caso, você terá alguns problemas. É isso aí! BTW, o tomcat instalado a partir do RPM fornece ao usuário o tomcat com UID = 91 e o grupo com GID = 91 (pelo menos no meu Fedora):
$ id tomcat
uid=91(tomcat) gid=91(tomcat) groups=91(tomcat)
  1. Ok, use /bin/false ou /sbin/nologin .

  2. Você pode especificar / como diretório inicial para o seu serviço, como alguns pacotes fazem. Por exemplo, se você tiver o tcpdump instalado a partir do RPM, terá a seguinte string em /etc/passwd :

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

Nesse caso, use o comando useradd com as chaves -d / e -M .

Por outro lado, o tomcat instalado a partir do RPM possui o diretório home correto:

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

E agora poucas palavras sobre chown .

Esses comandos fazem o mesmo trabalho:

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

Cotação de man chown :

Group is unchanged if missing, but changed to login group if implied by a ':' following a symbolic OWNER.

Usar . como separador OWNER / GROUP está obsoleto agora. Use : .

    
por 24.06.2015 / 16:09
1
useradd -m -d /home/thenewuser -s /bin/bash -c "the new user" -U thenewuser

-c "message" : informações extras sobre o usuário.

-U thenewuser : Crie um grupo com o mesmo nome do usuário e adicione o usuário a este grupo.

-N : o argumento -N diz ao sistema para não criar um grupo com o nome do usuário

-m, --create-home são os mesmos: Crie o diretório pessoal do usuário, se ele não existir.

-d, --home HOME_DIR : O novo usuário será criado usando HOME_DIR como o valor para o diretório de login do usuário.
se -d não for usado, o diretório padrão será / home / thenewuser

-m -d / data / thenewuser : o argumento -m cria o diretório / data / thenewuser, especificado pelo argumento -d.

-M : o argumento -M diz ao sistema para não criar um diretório home

-s / bin / bash : o -s é usado para especificar o shell padrão do usuário, / bin / bash nesse caso.

-s ou --shell são iguais.

-s / sbin / nologin : O / sbin / nologin para o Fedora e / usr / sbin / nologin para o Debian são dois shells que lhe devolva uma mensagem educada como "esta conta não está disponível" e não permite que você faça o login no sistema. Esta mensagem pode ser personalizada.

-s / bin / false : é um shell antigo usado para negar o login de um usuário. O / bin / false sai imediatamente quando falso existe. As contas de usuário com / bin / false ou / bin / true como seus shells padrão estão bloqueadas.

-s / sbin / nologin pertence ao unix-linux enquanto / bin / false parte do GNU Coreutils. Essas shells devem estar listadas no arquivo / etc / shells, para funcionar.

Os usuários com / sbin / nologin (ou / usr / sbin / nologin) podem se conectar através de ssh ou ftp, mas os usuários com / bin / false são completamente bloqueados do sistema.

com useradd -D : Você também pode ver o conjunto de parâmetros padrão para o novo usuário ser criado usando

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

Verifique outras alternativas em: link

-r : os argumentos -r são para criar um usuário do sistema

Verifique o usuário

dedo

Exemplo

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

O CentOS 6 não tem este comando, mas você pode instalá-lo facilmente com

yum install finger

.

other ' link

    
por 25.06.2015 / 04:36