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.