GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué el usuario 'bin' necesita un shell de inicio de sesión?

Un usuario que tiene un shell válido y no tiene contraseña aún puede iniciar sesión mediante métodos no basados ​​en contraseña, siendo el más común una clave ssh. Se necesita un shell válido para ejecutar trabajos cron. También es necesario un shell válido para su bin -c 'wibble' para trabajar (al menos en Linux, su bin -s /bin/sh -c 'wibble' también funcionará).

En el caso de bin , la mayoría de los sistemas nunca ejecutan un comando como bin en funcionamiento normal, por lo que establecer el shell en /bin/false estaría bien.

No hay riesgo de ningún ataque directo que permita bin para iniciar sesión a través de SSH, porque eso requeriría crear /bin/.ssh/authorized_keys como usuario bin o como raíz. En otras palabras, la única forma de ingresar es estar adentro. Sin embargo, tener un shell válido aumenta el riesgo de una configuración incorrecta. También puede permitir algunos ataques remotos con servicios distintos a SSH; por ejemplo, un usuario informa que un atacante podría establecer una contraseña para daemon de forma remota a través de Samba, luego use esa contraseña para iniciar sesión a través de SSH.

Puede tapar el agujero SSH enumerando los nombres de los usuarios del sistema en un DenyUsers directiva en /etc/ssh/sshd_config (desafortunadamente, no puede usar un rango numérico). O, por el contrario, puedes poner un AllowGroups directiva y solo permitir los grupos que contienen usuarios físicos (por ejemplo, users si otorga a todos sus usuarios físicos esa membresía de grupo).

Hay errores archivados sobre este problema en Debian (#274229, #330882, #581899), actualmente abiertos y clasificados como "lista de deseos". Tiendo a estar de acuerdo en que estos son errores y los usuarios del sistema deberían tener /bin/false como su caparazón a menos que parezca necesario hacer lo contrario.


No tienes que preocuparte por ellos como usuarios. Son "usuarios" en el sentido de grupos de seguridad, no usuarios en el sentido de "iniciar sesión y usar" personas. Si miras en "/etc/shadow", verás que todos estos "usuarios" no tienen contraseñas (ya sea "x" o "!" en lugar de un hash largo con sal). Esto significa que estos usuarios no pueden iniciar sesión, pase lo que pase.

Dicho esto, no sé si es una buena idea cambiar "/bin/sh" a "/bin/false" para todos estos usuarios. Debido a que los programas se ejecutan en estos grupos, es posible que no les permita ejecutar los comandos que necesitan. Los dejaría como "/bin/sh".

No es necesario que se preocupe por estos usuarios. Solo preocúpate por los usuarios que creas (y los que tienen hash en "/etc/shadow")


Linux
  1. ¿Por qué el usuario raíz necesita permiso de Sudo?

  2. Si los procesos heredan el entorno de los padres, ¿por qué necesitamos exportar?

  3. Linux:¿por qué Archlinux mantiene algunos usuarios/grupos después de la desinstalación del paquete?

  4. ¿Por qué Regex en Bash funciona solo si es una variable y no directamente?

  5. ¿Por qué /bin/sh apunta a /bin/dash y no a /bin/bash?

Los efectos de agregar usuarios a un sistema Linux

¿Cuál es la diferencia entre Shell de inicio de sesión y sin inicio de sesión?

¿Por qué Bashrc comprueba si el shell actual es interactivo?

¿Por qué un shell de inicio de sesión 'sudo -i' interrumpe un argumento de cadena de comando Here-doc?

¿Por qué $shlvl comienza en el nivel 2 en los shells sin inicio de sesión pero en el nivel 1 en los shells de inicio de sesión en Rhel 7?

¿Por qué es necesario inicializar un dispositivo raid 10?