Como criar contas de usuários limitadas no Linux

3

Eu quero criar uma conta de usuário para cada um dos principais programas instalados no meu servidor Debian. Por exemplo, para os seguintes programas:

Tomcat Nginx Supervisor PostgreSQL

Isto parece ser recomendado com base na minha leitura online. No entanto, eu quero restringir essas contas de usuário tanto quanto possível, para que elas não tenham um login de shell, não tenham acesso aos outros programas e sejam tão limitadas quanto possível, mas ainda assim funcionais.

Alguém se importaria de me dizer como isso poderia ser alcançado? Minha leitura até agora sugere isso:

echo "/ usr / sbin / nologin" > > / etc / shells useradd -s / usr / sbin / nologin tomcat

Mas acho que pode haver uma maneira mais completa de fazê-lo.

EDIT: Estou usando o debian squeeze

    
por James Willson 20.09.2012 / 16:44

2 respostas

0

Qual distro você está usando? Boas distros já configuram seus scripts de instalação para esses 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 no qual eles precisam ler / gravar cooperativamente em vários arquivos. Mas em todos os casos eles tendem a ter nologin como seu shell de login, o que é apropriado.

    
por 20.09.2012 / 17:06
0

Eu não sei se isso vai te ajudar ou não, apenas veja isso.

I want to restrict these user accounts as much as possible, so that they dont have a shell login

Para isso, antes de criar uma conta de usuário, basta editar o arquivo /etc/default/useradd

Isso

  1 # useradd defaults file
  2 GROUP=100
  3 HOME=/home
  4 INACTIVE=-1
  5 EXPIRE=
  6 SHELL=/bin/bash
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=yes

Para isso

  1 # useradd defaults file
  2 GROUP=100
  3 HOME=/home
  4 INACTIVE=-1
  5 EXPIRE=
  6 SHELL=/bin/nologin
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=yes

Depois de alterar isso, se você criar uma conta de usuário, para todas essas contas, não é possível fazer login no sistema

Isso é por causa disso

user:x:1017:1017::/home/user:/bin/nologin -----> /etc/passwd file entry

veja aqui

[max@localhost ~]$ su - user
Password: 
su: /bin/nologin: No such file or directory
[max@localhost ~]$ 

você pode obter isso editando o arquivo /etc/passwd diretamente, sem precisar editar /etc/default/useradd

arquivo se o usuário for menor

altere apenas o último preenchido

Isso

user:x:1017:1017::/home/user:/bin/bash

Para isso

user:x:1017:1017::/home/user:/bin/nologin

    
por 29.09.2012 / 07:41