Como criar contas de usuário limitadas no Linux

Como criar contas de usuário limitadas no Linux

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 nologincomo 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/useraddarquivo

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/passwdo 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

informação relacionada