Cómo crear cuentas de usuario limitadas en Linux

Cómo crear cuentas de usuario limitadas en Linux

Quiero crear una cuenta de usuario para cada uno de los programas clave instalados en mi servidor Debian. Por ejemplo, para los siguientes programas:

Supervisor de Tomcat Nginx PostgreSQL

Esto parece recomendado según mis lecturas en línea. Sin embargo, quiero restringir estas cuentas de usuario tanto como sea posible, para que no tengan un inicio de sesión de shell, no tengan acceso a otros programas y sean lo más limitadas posible pero aún funcionales.

¿A alguien le importaría decirme cómo se podría lograr esto? Mi lectura hasta ahora sugiere esto:

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

Pero creo que puede haber una forma más completa de hacerlo.

EDITAR: estoy usando Debian squeeze

Respuesta1

¿Qué distribución estás ejecutando? Las buenas distribuciones ya configuran sus scripts de instalación para dichos paquetes con el fin de crear usuarios específicos para demonios que pueden beneficiarse de la ejecución como un usuario independiente. Algunos paquetes comparten un usuario donde necesitan leer/escribir de forma cooperativa en varios archivos. Pero en todos los casos tienden a tener nologincomo shell de inicio de sesión, lo cual es apropiado.

Respuesta2

No sé si te ayudará o no, simplemente mira esto.

Quiero restringir estas cuentas de usuario tanto como sea posible,para que no tengan un inicio de sesión de shell

Para esto, antes de crear una cuenta de usuario, simplemente edite el /etc/default/useraddarchivo.

Este

  1 # usuarioañadir archivo de valores predeterminados
  2 GRUPO=100
  3 INICIO=/hogar
  4 INACTIVO=-1
  5 EXPIRAR=
  6 SHELL=/bin/bash
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=sí

A esto

  1 # usuarioañadir archivo de valores predeterminados
  2 GRUPO=100
  3 INICIO=/hogar
  4 INACTIVO=-1
  5 EXPIRAR=
  6 SHELL=/bin/nologin
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=sí

Después de cambiar esto, si crea una cuenta de usuario, para todas esas cuentas no es posible iniciar sesión en el sistema.

Eso es por esto

usuario:x:1017:1017::/home/usuario:/bin/no iniciar sesión-----> entrada del archivo /etc/passwd

mira aquí

[max@localhost ~]$ su - usuario
Contraseña:
su: /bin/nologin: No existe tal archivo o directorio
[max@localhost ~]$

puede obtener esto editando /etc/passwdel archivo directamente sin necesidad de editarlo/etc/default/useradd

archivo si los usuarios son menos

solo cambia el último archivo

Este

usuario:x:1017:1017::/home/usuario:/bin/bash

A esto

usuario:x:1017:1017::/home/usuario:/bin/nologin

información relacionada