Necesito un comando para enumerar todos los usuarios en la terminal. Y cómo agregar, eliminar, modificar usuarios desde la terminal.
Eso podría ayudar a administrar sus cuentas fácilmente por terminal.
awk -F: '{ print $1 }' /etc/passwd
Necesito un comando para enumerar todos los usuarios en la terminal. Y cómo agregar, eliminar, modificar usuarios desde la terminal.
Eso podría ayudar a administrar sus cuentas fácilmente por terminal.
awk -F: '{ print $1 }' /etc/passwd
Respuestas:
Para enumerar todos los usuarios locales que puede usar:
cut -d: -f1 /etc/passwd
Para enumerar todos los usuarios capaces de autenticarse (de alguna manera), incluidos los no locales, consulte esta respuesta .
Algunos comandos de administración de usuarios más útiles (también limitados a usuarios locales ):
Para agregar un nuevo usuario puede usar:
sudo adduser new_username
o:
sudo useradd new_username
Ver también: ¿Cuál es la diferencia entre adduser y useradd?
Para eliminar / eliminar un usuario, primero puede usar:
sudo userdel username
Entonces es posible que desee eliminar el directorio de inicio de la cuenta de usuario eliminada:
sudo rm -r / home / nombre de usuario
¡Utilice con precaución el comando anterior!
Para modificar el nombre de usuario de un usuario:
usermod -l new_username old_username
Para cambiar la contraseña de un usuario:
sudo passwd username
Para cambiar el shell de un usuario:
sudo chsh username
Para cambiar los detalles de un usuario (por ejemplo, nombre real):
sudo chfn username
Para agregar un usuario al sudo
grupo:
adduser username sudo
o
usermod -aG sudo username
Y, por supuesto, consulta: man adduser
, man useradd
, man userdel
... y así sucesivamente.
sudo chfn <username>
qué cambios en los detalles del usuario (por ejemplo, nombre real) Intenté agregar esto como un comentario, pero recibí un error al decirme que debo tener una reputación de +50 para hacerlo.
Simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute los siguientes comandos:
cat /etc/passwd
O
less /etc/passwd
more /etc/passwd
También puedes usar awk: awk
awk -F':' '{ print $1}' /etc/passwd
adduser
, useradd
debe limitarse a los scripts donde el autor realmente sabe lo que está haciendo.
La forma más fácil de obtener este tipo de información es getent
: consulte la página de manual paragetent
ver el comando . Si bien ese comando proporciona el mismo resultado cat /etc/passwd
que es útil recordar, porque le dará listas de varios elementos en el sistema operativo.
Para obtener una lista de todos los usuarios que escribe (como los usuarios se enumeran en /etc/passwd
)
getent passwd
Para agregar un usuario newuser al sistema, escribiría
sudo adduser newuser
para crear un usuario que tenga todas las configuraciones predeterminadas aplicadas.
Bonus: Para añadir cualquier usuario (por ejemplo anyuser ) a un grupo (por ejemplo, CD-ROM ) escriba
sudo adduser anyuser cdrom
Elimina un usuario (por ejemplo, obsoleto ) con
sudo deluser obsolete
Si también desea eliminar su directorio de inicio / correos, escriba
sudo deluser --remove-home obsolete
Y
sudo deluser --remove-all-files obsolete
eliminará el usuario y todos los archivos de este usuario en todo el sistema.
getent passwd
siendo el comando correcto
Esto debería hacer que, en la mayoría de las situaciones normales , todos los usuarios normales (que no sean del sistema, no sean extraños, etc.):
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
Esto funciona por:
/etc/passwd
:
como delimitadorEsto se debe a que en muchos sistemas Linux, los nombres de usuario superiores a 1000 están reservados para usuarios sin privilegios (se podría decir que son normales). Alguna información sobre esto aquí :
Una identificación de usuario (UID) es un entero positivo único asignado por un sistema operativo tipo Unix a cada usuario. Cada usuario se identifica con el sistema mediante su UID, y los nombres de usuario generalmente se usan solo como una interfaz para humanos.
Los UID se almacenan, junto con sus nombres de usuario correspondientes y otra información específica del usuario, en el archivo / etc / passwd ...
El tercer campo contiene el UID, y el cuarto campo contiene el ID de grupo (GID), que por defecto es igual al UID para todos los usuarios comunes.
En los núcleos Linux 2.4 y superiores, los UID son enteros de 32 bits sin signo que pueden representar valores de cero a 4,294,967,296. Sin embargo, es aconsejable usar valores de hasta 65.534 para mantener la compatibilidad con sistemas que usan núcleos o sistemas de archivos más antiguos que solo pueden acomodar UID de 16 bits.
El UID de 0 tiene una función especial: siempre es la cuenta raíz (es decir, el usuario administrativo omnipotente). Aunque el nombre de usuario se puede cambiar en esta cuenta y se pueden crear cuentas adicionales con el mismo UID, ninguna acción es acertada desde el punto de vista de la seguridad.
El UID 65534 se reserva comúnmente para nadie, un usuario sin privilegios del sistema, a diferencia de un usuario normal (es decir, no privilegiado). Este UID se usa a menudo para personas que acceden al sistema de forma remota a través de FTP (protocolo de transferencia de archivos) o HTTP (protocolo de transferencia de hipertexto).
Los UID 1 a 99 están tradicionalmente reservados para usuarios especiales del sistema (a veces llamados pseudousuarios), como wheel, daemon, lp, operator, news, mail, etc. Estos usuarios son administradores que no necesitan poderes de root totales, pero que realizan algunas tareas administrativas y, por lo tanto, necesitan más privilegios que los otorgados a los usuarios comunes.
Algunas distribuciones de Linux (es decir, versiones) comienzan los UID para usuarios no privilegiados en 100. Otros, como Red Hat, los comienzan en 500, y otros, como Debian, los comienzan en 1000. Debido a las diferencias entre las distribuciones, el manual La intervención puede ser necesaria si se utilizan múltiples distribuciones en una red de una organización.
Además, puede ser conveniente reservar un bloque de UID para usuarios locales, como 1000 a 9999, y otro bloque para usuarios remotos (es decir, usuarios de otras partes de la red), como 10000 a 65534. Lo importante es decidir en un esquema y adherirse a él.
Una de las ventajas de esta práctica de reservar bloques de números para tipos particulares de usuarios es que hace que sea más conveniente buscar en los registros del sistema actividades sospechosas de los usuarios.
Contrariamente a la creencia popular, no es necesario que cada entrada en el campo UID sea única. Sin embargo, los UID no únicos pueden causar problemas de seguridad y, por lo tanto, los UID deben mantenerse únicos en toda la organización. Del mismo modo, se debe evitar el reciclaje de UID de antiguos usuarios durante el mayor tiempo posible.
getent
lugar de leer directamente /etc/passwd
y buscar UID_MIN
/ en UID_MAX
lugar de codificar los valores:getent passwd | awk -F: "{if (\$3 >= $(awk '/^UID_MIN/ {print $2}' /etc/login.defs) && \$3 <= $(awk '/^UID_MAX/ {print $2}' /etc/login.defs)) print \$1}"
lista de todos los usuarios que pueden iniciar sesión (no hay usuarios del sistema como: bin, deamon, mail, sys, etc.)
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
agregar nuevo usuario
sudo adduser new_username
o
sudo useradd new_username
eliminar / eliminar nombre de usuario
sudo userdel username
Si desea eliminar el directorio de inicio (predeterminado el directorio / inicio / nombre de usuario)
sudo deluser --remove-home username
o
sudo rm -r /path/to/user_home_dir
Si desea eliminar todos los archivos del sistema de este usuario (no solo el inicio es obligatorio)
sudo deluser --remove-all-files
adduser
y useradd
. An también agrega el sudo
prefijo al primer comando. El archivo de sombra de contraseña solo se puede leer como root.
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
me mostró a todos los usuarios, incluidos bin, daemon, etc. y lanzó esta advertencia: secuencia de escape \$' treated as plain
$ 'Encontré esta publicación stackoverflow.com/a/25867768/847954 y agregué una barra invertida más y funcionó bien:awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow
Ok, aquí hay un truco que te ayudará a resolver esto. El terminal tiene finalización automática si escribe user y presiona la tecla Tab dos veces, enumerará todos los comandos que existen con el usuario como los primeros 4 caracteres.
user (tab tab)
me da las opciones posibles useradd userdel usermod users users-admin
si quieres saber más sobre un comando google it o escribe man man useradd da useradd - crea un nuevo usuario o actualiza la información predeterminada del nuevo usuario ...
para enumerar usuarios, debes ir con lo que dijo Mitch
Espero que eso me ayude a amar completar pestañas en bash me evita recordar cosas.
Para averiguar los usuarios que tienen directorios de inicio en la carpeta / home de la máquina, ejecute los siguientes comandos
cd /home
ls
Luego puede ver los usuarios que tienen autorización para iniciar sesión en el servidor. Si queremos examinar los archivos de cualquier usuario, debe ser el usuario raíz.
/home
. Si bien Ubuntu coloca los directorios de usuarios allí de forma predeterminada, no es obligatorio.
ls /home
también puede contener directorios de usuarios de usuarios eliminados.
sed 's/:.*//' /etc/passwd