it-swarm-es.com

Crear un usuario que no puede obtener un shell interactivo

¿Qué son los shell interactivos y no interactivos?

Preguntas: Cree un usuario john que no debería tener un Shell interactivo.

¿Cómo podemos hacer esto?

18
user2914

Los /etc/passwd file tiene como último elemento en la línea de un usuario el programa que se ejecutará al iniciar sesión. Para los usuarios normales, esto generalmente se establece en /bin/sh u otro Shell (por ejemplo, bash, zsh).

Tradicionalmente, las identidades que se utilizan para poseer procesos o archivos u otros recursos tienen su "Shell" configurado en /bin/false como en

syslog:x:101:102::/home/syslog:/bin/false

El registro del sistema del pseudo-usuario es propietario de /var/log/syslog y es el único UID que tiene permiso de escritura para ese archivo, pero no se puede iniciar sesión como usuario syslog ya que no hay un intérprete de comandos para ejecutar.

9
msw

Con respecto a la pregunta que está tratando de responder:

Cree un usuario john que no debería obtener un Shell interactivo.

La pregunta significa "Cree un usuario llamado john que no podrá iniciar sesión y ejecutar comandos desde un Shell". Interactivo describe la forma en que funciona el Shell: el usuario escribe algo y el Shell hace algo en consecuencia (hay una especie de comunicación entre el usuario y el Shell). La palabra "interactivo" realmente no agrega ninguna información a la pregunta, porque mientras haya un usuario que escriba comandos, la sesión de Shell es interactiva.

También existe el modo no interactivo, donde el usuario guarda una serie de comandos que desea ejecutar en un archivo (llamado script de Shell) y luego ejecuta el archivo. Algunos comandos se comportan de manera diferente dependiendo de si el Shell se ejecuta de forma interactiva o no interactiva. Puede leer más aquí (este documento es para bash, pero el mismo concepto se aplica a otros shells).

Sobre cómo crear un usuario de este tipo, si echa un vistazo a man useradd hay una opción para configurar el Shell de inicio de sesión, -s o --Shell. También puede crear un usuario normalmente, de la forma que desee (que supongo que ya sabe), luego editar /etc/passwd como en respuesta de msw .

9
phunehehe

Sí, cambie el Shell en el archivo de contraseña (/ etc/passwd) a algún programa que no no permita un escape del Shell.

si quieres ser un bofh /bin/false hará exactamente lo que quieras.

3
David Harris
adduser username -s /sbin/nologin
0
H2 Mac