Si te encuentras con algún detalle que te causa duda puedes dejarlo en los comentarios y trataremos de ayudarte tan rápido como podamos.
Solución:
Mi respuesta se basa en las respuestas a esta pregunta de stackoverflow.
Listado de todos los “usuarios”
Esperaba que hubiera una manera de decir, mostrarme todos los usuarios que pueden acceder a mi servidor.
Lo que no me di cuenta es que no hay una distinción entre personas-usuarios y sistema-“usuarios”, por lo que, si bien puede enumerar a todos los usuarios con este comando, es probable que sea mucho más largo de lo que esperaba:
cat /etc/passwd
Mostrando todos los usuarios con un shell válido
Si el shell de los usuarios está configurado para /etc/false
entonces no pueden iniciar sesión, por lo que esto reduce la lista de posibles usuarios de ssh:
cat /etc/passwd | grep -v /bin/false
Pero esa sigue siendo una lista bastante grande.
Usuarios que realmente tienen acceso
Si un usuario no tiene una contraseña válida, podría ser una indicación de que no puede iniciar sesión.
los /etc/shadow
El archivo contiene las contraseñas cifradas, un “!” o un “*” en la segunda columna de este archivo significa que no se estableció ninguna contraseña. Podemos filtrarlos para obtener una lista nueva (probablemente más corta) de usuarios que tienen una contraseña válida:
cat /etc/shadow | grep '^[^:]*:[^*!]'
Detalles sobre la expresión regular:
^
– El patrón tiene que estar al principio de la línea.[^:]*
– Coincide con cualquier personaje que no sea:
entre 0 y tiempo ilimitado:
– Coincidir con el personaje:
literalmente[^*!]
– Coincide con cualquier personaje que no sea*
,!
una vez.
Tenga en cuenta que la expresión regular está envuelta con comillas simples, esto es importante porque muchos caracteres especiales para expresiones regulares también son especiales para bash (consulte la parte 2 de esta respuesta)
Las únicas otras cuentas que no están cubiertas por eso serían donde tienen un ssh key en su cuenta de usuario, por lo que también debe mirar a los usuarios que tienen una carpeta de inicio:
ls -l /home
Restricción de acceso
Bien, ahora tengo una lista un tanto limitada y quiero quitar el acceso a un par de cuentas.
La respuesta de @Yaron describe esto con más detalle (al igual que esto), pero brevemente; la /etc/ssh/sshd_config
archivo dice qué cuentas pueden ssh, y si establece AllowUsers
allí, los otros usuarios estarán restringidos, por lo que puede editar ese archivo para que sea explícito sobre a quién desea permitir que inicie sesión:
vi /etc/ssh/sshd_config
Y agrega una línea que diga
AllowUsers user1 user2
Finalmente reinicie el servicio ssh
service ssh restart
(dependiendo de su sistema – vea esto para el reinicio del servicio en otros sistemas)
De forma predeterminada, todos los usuarios de una máquina específica pueden iniciar sesión en esta máquina mediante ssh.
Puedes configurar sshd
para permitir el acceso a sólo una parte de los usuarios de la máquina.
Página man de Ubuntu ssh Especifique que puede permitir/denegar usuarios/grupos específicos en sshd_config — OpenSSH SSH daemon configuration file
– /etc/ssh/sshd_config
- Permitir usuarios Esta palabra clave puede ir seguida de una lista de patrones de nombre de usuario, separados por espacios.
- Si se especifica, el inicio de sesión solo se permite para los nombres de usuario que coincidan con uno de los patrones.
- Solo los nombres de usuario son válidos; no se reconoce un ID de usuario numérico.
- De forma predeterminada, el inicio de sesión está permitido para todos los usuarios.
- Si el patrón toma la forma [email protected] luego, el USUARIO y el HOST se verifican por separado, lo que restringe los inicios de sesión a usuarios particulares de hosts particulares.
- Las directivas allow/deny se procesan en el siguiente orden: Denegar Usuarios, Permitir Usuarios, Denegar Grupos, y finalmente Permitir grupos
La lista de todos los usuarios en la máquina del servidor se puede encontrar ejecutando el siguiente comando en la máquina del servidor:
cat /etc/passwd
De acuerdo con la pregunta actualizada, el /etc/passwd
no tiene varios nombres de usuario. Esto podría ser el resultado de que el servidor sea parte del Servicio de información de red, LDAP o SAMBA.
Para revisar todos los usuarios y grupos conocidos por su servidor, de cualquier fuente que provengan, preferiría usar el getent
dominio :
getent passwd
Resumen de la discusión:
Parece que tiene LDAP en el servidor y se definió para deshabilitar el acceso a la lista de usuarios de LDAP.
De lo contrario getent passwd
te mostraría el passwd
expediente
Sección de Reseñas y Valoraciones
Al final de todo puedes encontrar las crónicas de otros sys admins, tú de igual manera tienes la opción de insertar el tuyo si te gusta.