GNU/Linux >> Tutoriales Linux >  >> Linux

Administrar usuarios de Linux y grupos de Linux

Linux, como todos sabemos, es un sistema operativo multiusuario. Si tiene varios usuarios en una computadora de escritorio o un servidor, puede administrar fácilmente varias cuentas de usuario de Linux y otorgar permisos a cada cuenta.

En este artículo, aprenderá:

  • Cómo administrar usuarios y grupos en un sistema Linux
  • Crear una nueva cuenta de usuario en Linux
  • Añadir usuario a un grupo en Linux
  • Crear grupo de usuarios en Linux
  • Eliminar grupo de usuarios en Linux

Administrar usuarios de Linux

Pero, antes de discutir cómo administrar usuarios y grupos de Linux, permítanme explicar por qué tener una cuenta de usuario distinta es vital desde el punto de vista de la seguridad. Muchos usuarios comienzan a usar la cuenta raíz en el primer arranque de un servidor Linux, lo cual no se recomienda.

No es una buena idea ejecutar las operaciones del servidor del día a día utilizando una cuenta raíz. El usuario raíz es una cuenta de superusuario. Tenerlo registrado garantiza que al menos una vez el usuario ejecutará un comando incorrecto, y el usuario root lo hará, la mayoría de las veces sin siquiera pedir confirmación. Cuando inicia sesión como usuario no root, el usuario tiene menos acceso al sistema y es menos probable que haga algo malo.

En segundo lugar, agregar usuarios a un grupo o grupos en lugar de administrar usuarios individuales facilita la administración de múltiples usuarios en Linux. Esto nos lleva al tema de los grupos de usuarios de Linux. Puede resultar tedioso para algunos usuarios de escritorio, pero es una función útil para los administradores de sistemas.

Grupos de usuarios de Linux

Administrar múltiples usuarios es una tarea difícil para un administrador de sistemas, especialmente cuando los usuarios provienen de varios dominios. Un administrador puede querer conceder a un tipo de usuario acceso a un directorio y negar a otros tipos de usuarios el acceso a otros directorios del sistema. Alternativamente, un administrador puede querer tener varios tipos de usuarios con permisos variados en el mismo directorio. Es posible lograr esto en Linux creando grupos de usuarios de Linux.

Supongamos que somos dueños de una empresa de desarrollo de software. Todos los directorios de proyectos se almacenan en un servidor central. Solo queremos proporcionar a los programadores de Python acceso al directorio de Python, que contiene todo el código de Python.

Para demostrarlo, crearemos un nuevo usuario llamado Sandy. Sandy es un desarrollador de Python que requiere acceso al directorio de código de Python de nuestro servidor. Entonces, comencemos creando su cuenta.

Crear un nuevo usuario en Linux

Crear un nuevo usuario en Linux es extremadamente fácil desde la GUI.

Por ejemplo, estoy usando Manjaro Linux (Deepin) y crear un nuevo usuario es como crear una nueva nota en cualquier aplicación para tomar notas. Simplemente escriba el nombre de usuario y la contraseña, y eso es todo.

Pero si necesita crear un nuevo usuario en un servidor Linux, los siguientes dos comandos pueden hacer el trabajo:

  • añadir usuario
  • agregarusuario

añadir usuario – Este comando está disponible en todas las distribuciones de Linux. Acepta diferentes argumentos para crear un nuevo usuario en Linux . Si se ejecuta sin argumentos, el comando creará una cuenta de usuario sin directorio de inicio, extensión de shell, etc.

Sin embargo, puede configurar las opciones predeterminadas en /etc/default/useradd para que cada vez que se cree un usuario, el comando tome los valores predeterminados de /etc/default/useradd automáticamente.

agregar usuario – Un comando escrito en perl que usa useradd en el back-end. A diferencia de useradd , solo requiere el nombre de usuario y ejecuta una configuración en la terminal para crear un usuario. Es más fácil que useradd.

adduser solo está disponible en Ubuntu y otras distribuciones de Linux basadas en Debian.

¿Cómo usar useradd?

useradd -m sandy

El comando anterior creará una cuenta de usuario con un directorio de inicio en /home/sandy . Ahora configure la contraseña para el usuario.

sudo passwd sandy

Y eso es. Se ha creado un usuario. Si desea crear un directorio de inicio diferente para el usuario, -d el parámetro es para eso.

sudo useradd -d /home/james sandy

También puede configurar el shell en el comando useradd. Solo usa -s parámetro.

sudo useradd -d /home/james -s /bin/bash sandy

¿Cómo usar adduser?

Como mencioné anteriormente, adduser es mucho más fácil que useradd . Solo requiere el nombre de usuario. adduser hace preguntas y establece los valores de entrada como valores de parámetro en el comando useradd.

sudo adduser sandy

Si está utilizando Ubuntu u otras distribuciones basadas en Debian, continúe con adduser dominio. Este comando fue creado para simplificar el proceso de creación de usuarios en sistemas Linux.

Agregar grupo de usuarios en Linux

Como se mencionó anteriormente, administrar usuarios de Linux es más fácil al agregarlos a uno o grupos de Linux.

Podemos crear un grupo llamado 'programadores de Python', agregar a Sandy, nuestro desarrollador de Python, a este grupo y luego otorgarle acceso al directorio de Python.

groupadd python-programmer

Añadir usuario a un grupo en Linux

Ahora agregue Sandy al grupo de programadores de Python.

sudo usermod -aG python-programmer sandy

Añadir grupo a un directorio en Linux

Cambie el grupo del directorio de Python que existe en $HOME/Projects/Python .

sudo chown -R :python-programmer $HOME/Projects/Python

Agregar permisos al directorio

Ahora agregue permiso de lectura y escritura al directorio para los usuarios del grupo.

sudo chmod -R g+w $HOME/Projects/Python

Eliminar permisos del directorio

Y finalmente, no permita que otros usuarios accedan al directorio de Python.

sudo chmod -R o-x Python

¡Y el trabajo está hecho! Ahora el directorio de Python puede ser accedido por el usuario root o cualquier usuario del grupo 'python-programmers'.

¡Pero hay un problema!

El procedimiento anterior hará el trabajo. Otorgará acceso a los usuarios de python-programmers al directorio de Python, pero hay un problema. El enfoque anterior solo permitirá que un grupo de usuarios acceda al directorio de Python a la vez. Si desea permitir que otros desarrolladores accedan al directorio de Python, deberá eliminar el acceso del grupo anterior y configurar el nuevo grupo como propietario del directorio.

Para resolver este problema y permitir el acceso a varios tipos de usuarios a la vez, podemos utilizar listas de control de acceso.

Listas de control de acceso

Digamos que tenemos un grupo de auditores en nuestra compañía. Queremos permitir que los auditores del grupo tengan acceso de "lectura" al directorio de Python sin eliminar ningún otro grupo de él.

setfacl -m g:auditors:rx -R $HOME/Projects/Python

Y eso es todo. Ahora los usuarios del grupo de programadores de Python tienen acceso de lectura y escritura, y los usuarios del grupo de auditores tienen acceso de lectura en el directorio de Python. Si desea permitir que los auditores también tengan acceso de escritura, agregue la w en el comando anterior.

setfacl -m g:auditors:rwx -R $HOME/Projects/Python

Eliminar usuario en Linux

Es posible que también deba eliminar un usuario en Linux. Se puede hacer usando userdel comando.

userdel sandy
Advertencia
Eliminar un usuario es una acción irrecuperable. Así que asegúrese de hacer una copia de seguridad de los archivos y configuraciones importantes antes de eliminar a cualquier usuario. De forma predeterminada, el comando no eliminará el directorio de inicio del usuario.Aviso
Antes de eliminar cualquier usuario en Linux, asegúrese de que el usuario no esté utilizando ningún otro proceso. De lo contrario, obtendrá el siguiente error:
userdel: The user sandy is being used by process 3861

Lista de todos los procesos de un usuario en Linux

ps -u sandy
Output -
  PID TTY          TIME CMD
 4831 ?        00:00:00 systemd
 4832 ?        00:00:00 (sd-pam)
 4845 ?        00:00:00 gnome-keyring-d
 4849 tty5     00:00:00 gdm-x-session
 4851 tty5     00:00:10 Xorg
 4856 ?        00:00:00 dbus-daemon
 4860 tty5     00:00:00 gnome-session-b
 4958 ?        00:00:00 ssh-agent
 4961 ?        00:00:00 gvfsd
 4966 ?        00:00:00 gvfsd-fuse
 4975 ?        00:00:00 at-spi-bus-laun
 4980 ?        00:00:00 dbus-daemon
 4983 ?        00:00:00 at-spi2-registr
 4997 ?        00:00:00 gnome-keyring-d
 5012 tty5     00:00:21 gnome-shell
 5023 ?        00:00:00 pulseaudio
 5032 tty5     00:00:00 ibus-daemon
 5034 ?        00:00:00 xdg-permission-
 5042 tty5     00:00:00 ibus-dconf
 5044 ?        00:00:00 gnome-shell-cal
 5046 tty5     00:00:00 ibus-x11
 5050 ?        00:00:00 ibus-portal
 5057 ?        00:00:00 evolution-sourc
 5066 ?        00:00:00 dconf-service
 5073 ?        00:00:00 goa-daemon
 5084 ?        00:00:00 goa-identity-se
 5094 ?        00:00:00 gvfs-udisks2-vo
 5099 ?        00:00:00 gvfs-gphoto2-vo
 5103 ?        00:00:00 gvfs-goa-volume
 5107 ?        00:00:00 gvfs-afc-volume
 5112 ?        00:00:00 gvfs-mtp-volume
 5116 tty5     00:00:00 gsd-power
 5117 tty5     00:00:00 gsd-print-notif
 5119 tty5     00:00:00 gsd-rfkill
 5121 tty5     00:00:00 gsd-screensaver
 5125 tty5     00:00:00 gsd-sharing
 5128 tty5     00:00:00 gsd-smartcard
 5130 tty5     00:00:00 gsd-xsettings
 5131 tty5     00:00:00 gsd-wacom
 5139 tty5     00:00:00 gsd-sound
 5144 tty5     00:00:00 gsd-a11y-settin
 5147 tty5     00:00:00 gsd-color
 5150 tty5     00:00:00 gsd-clipboard
 5154 tty5     00:00:00 gsd-housekeepin
 5155 tty5     00:00:00 gsd-datetime
 5160 tty5     00:00:00 gsd-media-keys
 5162 tty5     00:00:00 gsd-keyboard
 5164 tty5     00:00:00 gsd-mouse
 5186 tty5     00:00:00 gsd-printer
 5217 tty5     00:00:00 gsd-disk-utilit
 5219 tty5     00:00:01 nautilus-deskto
 5232 ?        00:00:00 gvfsd-trash
 5254 ?        00:00:00 evolution-calen
 5267 ?        00:00:00 evolution-calen
 5282 ?        00:00:00 evolution-addre
 5289 ?        00:00:00 evolution-addre
 5310 tty5     00:00:00 ibus-engine-sim
 5311 ?        00:00:00 gvfsd-metadata
 5364 ?        00:00:00 gvfsd-network
 5375 ?        00:00:00 gvfsd-dnssd
 5443 tty5     00:00:00 update-notifier
 5461 tty5     00:00:02 gnome-software
 5563 ?        00:00:03 nautilus
 5951 tty5     00:00:00 deja-dup-monito

O hay otro comando para enumerar los procesos de los usuarios en Linux, pgrep .

pgrep -u sandy
Output -
4831
4832
4845
4849
4851
4856
4860
4958
4961
4966
4975
4980
4983
4997
5012
5023
5032
5034
5042

Eliminar todos los procesos utilizados por el usuario

killall El comando eliminará todos los procesos de los usuarios.

killall -u sandy

Eliminar un usuario de Linux

Después de eliminar todos los procesos de los usuarios, podemos eliminar al usuario.

userdel sandy

Como mencioné anteriormente, de forma predeterminada, el comando no eliminará el directorio de inicio del usuario. Para eliminar también el directorio de inicio del usuario, agregue –-r argumento del comando.

userdel -r sandy

Eliminar usuario de un grupo en Linux

Si decide arrebatarle los derechos a un usuario, elimínelo del grupo.

sudo gpasswd -d sandy python-programmers

Si el usuario es miembro del grupo, generará lo siguiente:

Removing user sandy from group python-programmers

Eliminar un grupo en Linux

Si desea eliminar un grupo en Linux, use groupdel comando.

groupdel username

Si el grupo que se elimina es el grupo principal de cualquiera de los usuarios del sistema, el grupo no se puede eliminar. En ese caso, cambie el grupo principal de ese usuario.

Eliminar grupo de auditores del sistema.

groupdel auditors

Conclusión

Eso es todo al respecto. Administrar usuarios de Linux y grupos de Linux es simple. Una vez que haya aprendido a administrar usuarios, podrá mantener sus archivos seguros y privados sin depender de una biblioteca o servicio de terceros.

Si cree que he pasado por alto algo en el artículo, hágamelo saber en la sección de comentarios a continuación. Actualizaré este artículo cada tres meses con tus sugerencias (con tu nombre).

Avíseme si no entiende alguna de las instrucciones en el área de comentarios a continuación. Si eres un nerd y descubres un error en el artículo, házmelo saber usando la página Contáctanos o uniéndote a nuestro servidor de Discord.


Linux
  1. Administre los directorios de inicio de los usuarios de Linux con systemd-homed

  2. ¿Qué es un usuario de Linux?

  3. Usuarios y Grupos

  4. Lista de usuarios en Linux:el mejor método

  5. Administrar grupos de usuarios de Linux

Cómo gestionar usuarios en Plesk

Cómo listar usuarios en Linux

Comando de identificación en Linux

Cómo enumerar todos los usuarios en Linux

Cómo saber los grupos de un usuario de Linux

Cómo crear y administrar nuevos usuarios en Linux