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:
- Você precisa de usuário do sistema (com UID < 500)?
- Você precisa de shell ou deseja desativar o acesso ao shell (
/sbin/nologin, /bin/false
)? - 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.
- 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)
-
Ok, use
/bin/false
ou/sbin/nologin
. -
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 :
.