Cria um usuário restrito no servidor Debian

6

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:

Supervisor PostgreSQL do Tomcat Nginx

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 / 20:54

1 resposta

8

Esse é o caminho certo, mas você vai querer indicar que é um usuário do sistema para que /etc/shadow não tenha nenhuma informação antiga. Na página useradd man:

-r, --system

      Create a system account.

      System users will be created with no aging information in /etc/shadow, and their numeric identifiers are choosen 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.

Então você vai querer algo como:

useradd -s /usr/sbin/nologin -r -M tomcat

Você também pode criar um diretório pessoal, se quiser, talvez algo que pertença ao serviço, por exemplo:

useradd -s /usr/sbin/nologin -r -M -d /etc/nginx nginx
    
por 20.09.2012 / 21:00