Grupos de Usuarios y Permisos de Archivos en Linux

LinuxBeginner
Practicar Ahora

Introducción

Linux es un sistema operativo multiusuario. Esto significa que varias personas pueden utilizar la misma computadora con Linux de forma simultánea, cada una con su propio espacio privado y archivos, mientras comparten algunos recursos del sistema. Este laboratorio le introducirá en los conceptos básicos de la gestión de usuarios y los permisos de archivos en Linux, pilares fundamentales para la administración de sistemas y la seguridad.

Este es un Laboratorio Guiado, que proporciona instrucciones paso a paso para ayudarle a aprender y practicar. Siga las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 92%. Ha recibido una tasa de valoraciones positivas del 99% por parte de los alumnos.

Ver Información del Usuario Actual

En Linux, cada usuario posee un nombre de usuario único. Comencemos identificando con qué usuario hemos iniciado sesión actualmente.

Abra la terminal e introduzca el siguiente comando:

whoami

El comando whoami es una herramienta sencilla que muestra el nombre del usuario que está ejecutando la sesión actual.

Debería ver una salida similar a esta:

labex:project/ $ whoami
labex

Esto indica que actualmente ha iniciado sesión como el usuario "labex".

Crear un Nuevo Usuario

Ahora, vamos a crear un nuevo usuario. En Linux, la creación de usuarios requiere privilegios administrativos. Utilizaremos el comando sudo para obtener dichos privilegios.

sudo significa "Superuser Do" (Superusuario hace). Permite a los usuarios regulares ejecutar comandos con los privilegios del superusuario (o usuario root).

Antes de crear un nuevo usuario, hablemos del concepto de grupos primarios. En Linux, cada usuario pertenece a un grupo primario y puede pertenecer a múltiples grupos secundarios. El grupo primario se utiliza normalmente como el grupo propietario de los archivos que el usuario crea.

Cuando crea un nuevo usuario con adduser, el sistema crea automáticamente un grupo primario para ese usuario con el mismo nombre que el nombre de usuario. Esto se conoce como el esquema de Grupo Privado de Usuario (UPG).

Introduzca el siguiente comando para crear un nuevo usuario llamado "jack":

sudo adduser jack

Este comando realizará lo siguiente:

  1. Crear un nuevo usuario llamado "jack".
  2. Crear un nuevo grupo llamado "jack" (el grupo primario).
  3. Añadir al usuario "jack" al grupo "jack" como su grupo principal.
  4. Crear un directorio personal (home) para jack en /home/jack.

Se le pedirá que establezca una contraseña para jack y que proporcione información adicional. Puede configurar una contraseña sencilla (como "password") y presionar Enter para usar los valores predeterminados en el resto de la información.

Nota: Al introducir la contraseña, no verá ningún carácter en la pantalla; este es el comportamiento normal por razones de seguridad. Simplemente escriba su contraseña y presione Enter.

Tras crear el usuario, confirmemos que se ha creado su directorio personal y verifiquemos su grupo primario:

ls /home
id jack

El comando id le mostrará el identificador de usuario (UID) de jack, el identificador de su grupo primario (GID) y cualquier grupo secundario al que pertenezca.

Explorar los Grupos de Usuarios

En Linux, los grupos de usuarios son una forma de organizar a múltiples usuarios para la gestión de permisos. Cada usuario tiene un grupo primario y puede pertenecer a varios grupos secundarios. Exploremos los grupos a los que pertenece nuestro usuario actual:

id labex

Debería ver una salida similar a:

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)

Esto muestra que:

  • El usuario labex tiene un ID de usuario (UID) de 5000.
  • El grupo primario de labex también se llama labex con un ID de grupo (GID) de 5000.
  • labex pertenece a varios grupos secundarios, incluyendo sudo, ssl-cert y public.

Ahora, veamos todos los grupos presentes en el sistema:

cat /etc/group | sort

El comando cat muestra el contenido de los archivos, /etc/group es donde se almacena la información de los grupos, y | sort ordena la salida alfabéticamente.

Para ver solo los grupos relacionados con labex, utilice:

cat /etc/group | grep -E "labex"

grep es una potente herramienta de búsqueda. Este comando busca las líneas que contienen "labex" dentro del archivo de grupos.

Crear un Nuevo Grupo y Añadir un Usuario

Vamos a crear un nuevo grupo llamado "developers" y añadiremos a nuestro nuevo usuario "jack" a este grupo:

Primero, cree el nuevo grupo:

sudo groupadd developers

Ahora, añada a jack al grupo developers:

sudo usermod -aG developers jack

El comando usermod modifica las cuentas de usuario. La opción -aG añade al usuario a un grupo suplementario (la 'a' es de append o añadir, y la 'G' de group).

Para verificar que jack es ahora miembro del grupo developers, use:

groups jack

Debería ver "developers" listado entre los grupos de jack.

Añadir un Usuario al Grupo sudo

Ahora que hemos creado al usuario jack, vamos a otorgarle privilegios de sudo añadiéndolo al grupo sudo. Pero primero, entendamos por qué esto es importante:

Añadir un usuario al grupo sudo le permite ejecutar comandos con privilegios de superusuario o root. Esto es útil por varias razones:

  1. Seguridad: Permite al usuario realizar tareas administrativas sin tener que iniciar sesión directamente como el usuario root, lo cual se considera generalmente un riesgo de seguridad.
  2. Responsabilidad: Cuando los usuarios utilizan sudo, sus acciones quedan registradas, proporcionando un historial de auditoría de las tareas administrativas.
  3. Conveniencia: Elimina la necesidad de cambiar a la cuenta del usuario root para tareas administrativas ocasionales.
  4. Control granular: La configuración de sudo se puede personalizar para permitir que usuarios específicos ejecuten solo ciertos comandos con privilegios elevados.

Para añadir a jack al grupo sudo, use este comando:

sudo usermod -aG sudo jack

Este comando utiliza usermod para modificar la cuenta de usuario. La opción -aG significa "añadir al grupo", por lo que incorpora a jack al grupo sudo sin eliminarlo de sus otros grupos.

Después de añadir a jack al grupo sudo, puede verificar su pertenencia con:

sudo groups jack

Debería ver sudo listado entre los grupos de jack.

Al añadir a jack al grupo sudo, le hemos dado la capacidad de realizar tareas administrativas en el sistema. Sin embargo, es importante recordar que un gran poder conlleva una gran responsabilidad. Los usuarios con privilegios de sudo deben ser de confianza y comprender las implicaciones de sus acciones, ya que pueden afectar potencialmente a todo el sistema.

Comprensión y Manipulación de Permisos y Propiedad de Archivos

En Linux, los permisos y la propiedad de los archivos son cruciales para la seguridad del sistema. Exploremos estos conceptos y aprendamos cómo manipularlos.

  1. Primero, examinemos los permisos actuales en el directorio /home:
ls -l /home

Verá una salida similar a:

total 8
drwxr-xr-x 2 jack  jack  4096 Jul 30 10:00 jack
drwxr-xr-x 5 labex labex 4096 Jul 30 09:55 labex

Desglosemos lo que esto significa:

  • El primer carácter indica el tipo de archivo (d para directorio, - para archivo regular).
  • Los siguientes 9 caracteres representan los permisos para el propietario, el grupo y otros (en ese orden).
  • r significa permiso de lectura (read), w permiso de escritura (write) y x permiso de ejecución (execute).
  • El nombre de usuario que aparece después de estos caracteres es el propietario del archivo, seguido por el grupo propietario.
  1. Ahora, vamos a crear un nuevo archivo y cambiar su propietario:
touch /home/labex/testfile
ls -l /home/labex/testfile
sudo chown jack:jack /home/labex/testfile
ls -l /home/labex/testfile

El comando touch crea un archivo vacío. Inicialmente, el archivo pertenecerá a labex. Luego usamos chown para cambiar la propiedad a jack, tanto para el usuario como para el grupo.

¿Por qué cambiar la propiedad? En Linux, los propietarios de archivos tienen privilegios especiales sobre sus archivos. Al cambiar la propiedad, le estamos dando a jack el control total sobre este archivo.

  1. Finalmente, modifiquemos los permisos del archivo:
sudo chmod 750 /home/labex/testfile
ls -l /home/labex/testfile

El comando chmod cambia los permisos del archivo. El número 750 es una forma abreviada de establecer permisos:

  • 7 (propietario): Lectura (4) + Escritura (2) + Ejecución (1) = 7
  • 5 (grupo): Lectura (4) + Ejecución (1) = 5
  • 0 (otros): Sin permisos

Este conjunto de permisos significa:

  • El propietario (jack) puede leer, escribir y ejecutar el archivo.
  • Los miembros del grupo jack pueden leer y ejecutar el archivo.
  • Los demás no tienen ningún permiso sobre el archivo.

¿Por qué establecer estos permisos? Este es un esquema común que permite al propietario el acceso total, otorga al grupo un acceso limitado y restringe el acceso a todos los demás. Es un equilibrio entre usabilidad y seguridad.

Comprender los permisos y la propiedad de los archivos es vital en Linux. Le permite controlar quién puede leer, modificar o ejecutar archivos, lo cual es fundamental para la seguridad del sistema y la privacidad del usuario. A medida que continúe trabajando con Linux, utilizará estos comandos con frecuencia para gestionar el acceso a archivos y directorios.

Resumen

¡Felicidades! Ha completado el laboratorio de Grupos de Usuarios y Permisos de Archivos en Linux. Ha aprendido a:

  1. Ver información de usuario.
  2. Crear nuevos usuarios y comprender los grupos primarios.
  3. Explorar y modificar grupos de usuarios.
  4. Crear nuevos grupos y añadir usuarios a ellos.
  5. Otorgar privilegios de sudo a los usuarios.
  6. Ver y comprender los permisos de archivos.
  7. Cambiar la propiedad de los archivos.
  8. Modificar los permisos de los archivos.

Estas habilidades son fundamentales para gestionar usuarios y asegurar archivos en un entorno Linux. A medida que avance en su aprendizaje de Linux, encontrará que estos conceptos son esenciales para la administración y seguridad del sistema.