Quero criar uma conta de usuário para cada um dos principais programas instalados no meu servidor Debian. Por exemplo, para os seguintes programas:
Supervisor Tomcat Nginx PostgreSQL
Isso parece ser recomendado com base na minha leitura online. No entanto, quero restringir ao máximo essas contas de usuário, para que elas não tenham um login de shell, não tenham acesso a outros programas e sejam tão limitadas quanto possível, mas ainda funcionais.
Alguém se importaria de me dizer como isso poderia ser alcançado? Minha leitura até agora sugere o seguinte:
echo "/usr/sbin/nologin" >> /etc/shells useradd -s /usr/sbin/nologin tomcat
Mas acho que pode haver uma maneira mais completa de fazer isso.
EDITAR: estou usando o debian squeeze
Responder1
Qual distro você está executando? Boas distros já configuram seus scripts de instalação para tais pacotes para criar usuários específicos para daemons que podem se beneficiar da execução como um usuário separado. Alguns pacotes compartilham um usuário onde eles precisam ler/escrever cooperativamente em vários arquivos. Mas em todos os casos eles tendem a ter nologin
como shell de login, o que é apropriado.
Responder2
Eu não sei se isso irá ajudá-lo ou não, basta ver isso.
Quero restringir essas contas de usuário tanto quanto possível,para que eles não tenham um login de shell
Para isso antes de criar uma conta de usuário basta editar o /etc/default/useradd
arquivo
Esse
1 # arquivo de padrões useradd 2 GRUPO=100 3 CASA=/casa 4 INATIVO=-1 5 EXPIRAR= 6SHELL=/bin/bash 7SKEL=/etc/skel 8 CREATE_MAIL_SPOOL=sim
Para isso
1 # arquivo de padrões useradd 2 GRUPO=100 3 CASA=/casa 4 INATIVO=-1 5 EXPIRAR= 6SHELL=/bin/nologin 7SKEL=/etc/skel 8 CREATE_MAIL_SPOOL=sim
Depois de alterar isso, se você criar uma conta de usuário, para todas essas contas não será possível fazer login no sistema
Isso é por causa disso
usuário:x:1017:1017::/home/usuário:/bin/nologin-----> entrada do arquivo /etc/passwd
Veja aqui
[max@localhost ~]$ su - usuário Senha: su: /bin/nologin: Esse arquivo ou diretório não existe [max@localhost ~]$
você pode conseguir isso editando /etc/passwd
o arquivo diretamente, sem necessidade de editar/etc/default/useradd
arquivo se os usuários forem menores
basta alterar o último arquivado
Esse
usuário:x:1017:1017::/home/usuário:/bin/bash
Para isso
usuário:x:1017:1017::/home/usuário:/bin/nologin