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.
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.
sed 's/:.*//' /etc/passwd
awk -F: '{ print $1 }' /etc/passwd
Respuestas:
Listar
Para enumerar todos los usuarios locales que puede usar:
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
Para agregar un nuevo usuario puede usar:
o:
Ver también: ¿Cuál es la diferencia entre adduser y useradd?
Para eliminar / eliminar
Para eliminar / eliminar un usuario, primero puede usar:
Entonces es posible que desee eliminar el directorio de inicio de la cuenta de usuario eliminada:
¡Utilice con precaución el comando anterior!
Modificar
Para modificar el nombre de usuario de un usuario:
Para cambiar la contraseña de un usuario:
Para cambiar el shell de un usuario:
Para cambiar los detalles de un usuario (por ejemplo, nombre real):
Para agregar un usuario al
sudo
grupo:o
Y, por supuesto, consulta:
man adduser
,man useradd
,man userdel
... y así sucesivamente.fuente
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:
O
También puedes usar awk: awk
fuente
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 resultadocat /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
)Para agregar un usuario newuser al sistema, escribiría
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
Elimina un usuario (por ejemplo, obsoleto ) con
Si también desea eliminar su directorio de inicio / correos, escriba
Y
eliminará el usuario y todos los archivos de este usuario en todo el sistema.
fuente
getent passwd
siendo el comando correctoTambién puedes usar
compgen
GNU bash incorporado :Will listará a todos los usuarios.
fuente
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.):
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í :
fuente
getent
lugar de leer directamente/etc/passwd
y buscarUID_MIN
/ enUID_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.)
agregar nuevo usuario
o
eliminar / eliminar nombre de usuario
Si desea eliminar el directorio de inicio (predeterminado el directorio / inicio / nombre de usuario)
o
Si desea eliminar todos los archivos del sistema de este usuario (no solo el inicio es obligatorio)
fuente
adduser
yuseradd
. An también agrega elsudo
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.
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.
fuente
Para averiguar los usuarios que tienen directorios de inicio en la carpeta / home de la máquina, ejecute los siguientes comandos
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.
fuente
/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.