Gestión de usuarios y grupos, permisos y atributos de archivos y habilitación del acceso sudo en cuentas-Parte 8

Gestión de usuarios y grupos, permisos y atributos de archivos y habilitación del acceso sudo en cuentas-Parte 8

El pasado mes de agosto, Linux Foundation inició la certificación LFCS. ( Linux Foundation Certified Sysadmin. , un nuevo programa cuyo propósito es permitir que las personas en todas partes y en cualquier lugar tomen un examen. con el fin de obtener la certificación en soporte operativo básico a intermedio para sistemas Linux, que incluye soporte de sistemas y servicios en ejecución, junto con monitoreo y análisis generales, además de una toma de decisiones inteligente para poder decidir cuándo es necesario escalar los problemas a un soporte de nivel superior equipos.

 Administración de grupos y usuarios de Linux  Administración de grupos y usuarios de Linux Administrador de sistemas certificado de Linux Foundation-Parte 8

Por favor, eche un vistazo al siguiente video que describe una introducción al Programa de certificación de Linux Foundation.

Este Este artículo es la Parte 8 de una serie larga de 10 tutoriales, aquí en esta sección, lo guiaremos sobre cómo administrar los permisos de usuarios y grupos en el sistema Linux, que son necesarios para el examen de certificación LFCS.

Dado que Linux es un sistema operativo multiusuario (en el sentido de que permite que varios usuarios en diferentes computadoras o terminales accedan a un solo sistema), necesitará saber cómo realizar una administración de usuarios efectiva: cómo agregar, editar, suspender o eliminar usuarios cuentas, además de otorgarles los permisos necesarios para realizar las tareas asignadas.

Agregar cuentas de usuario

Para agregar una nueva cuenta de usuario, puede ejecutar cualquiera de los siguientes dos comandos como root .

# adduser [new_account] # useradd [new_account] freestar.config.enabled_slots.push (LocationName: “tecmint_ incontent “, slotId:” tecmint_incontent “);

Cuando se agrega una nueva cuenta de usuario al sistema, se realizan las siguientes operaciones.

1.. Su Se crea el directorio de inicio (/inicio/nombre de usuario de forma predeterminada).

2.. Los siguientes archivos ocultos se copian en el directorio de inicio del usuario y utilizarse para proporcionar variables de entorno para su sesión de usuario.

.bash_logout .bash_profile .bashrc

3.. Se crea una cola de correo para el usuario en/var/spool/mail/ nombre de usuario .

4.. Se crea un grupo y se le da el mismo nombre que la nueva cuenta de usuario.

Comprensión de/etc/passwd

La información completa de la cuenta se almacena en el archivo /etc/passwd . Este archivo contiene un registro por cuenta de usuario del sistema y tiene el siguiente formato (los campos están delimitados por dos puntos).

[nombre de usuario]: [x]: [UID]: [GID]: [Comentario]: [Directorio de inicio ]: [Shell predeterminado]

  1. Los campos [nombre de usuario] y [comentario] se explican por sí mismos.
  2. La x en el segundo campo indica que la cuenta está protegida por una contraseña oculta (en /etc/shadow ), que es necesaria para iniciar sesión como [nombre de usuario] .
  3. Los campos [UID] y [GID] son números enteros que representan la identificación de usuario y la identificación de grupo principal a la que [nombre de usuario] pertenece, respectivamente.
  4. El [directorio de inicio] indica la ruta absoluta al directorio de inicio de [nombre de usuario] , y
  5. El [shell predeterminado] es el shell que estará disponible para este usuario cuando inicie sesión en el sistema.

Comprensión de/etc/group

La información del grupo se almacena en el archivo /etc/group . Cada registro tiene el siguiente formato.

[Nombre del grupo]: [Contraseña del grupo]: [GID]: [Miembros del grupo]

  1. [Nombre del grupo] es el nombre de grupo.
  2. Una x en [Contraseña de grupo] indica que no se están utilizando contraseñas de grupo.
  3. [GID ] : igual que en/etc/passwd.
  4. [Miembros del grupo] : una lista separada por comas de los usuarios que son miembros de [Nombre del grupo] .

Agregar cuentas de usuario en Linux  Agregar cuentas de usuario en Linux Agregar cuentas de usuario

Después de agregar una cuenta, puede editar la siguiente información (para nombrar algunos campos) usando el usermod comando, cuya sintaxis básica de usermod es la siguiente.

# usermod [opciones] [nombre de usuario] Configuración de la fecha de caducidad de una cuenta

Utilice el indicador –expiredate seguido por una fecha en formato AAAA-MM-DD .

# usermod–expiredate 2014-10-30 tecmint Agregar el usuario a grupos suplementarios

Use la combinación -aG o –append –Groups opciones, seguidas de una lista de grupos separados por comas.

# usermod–append–groups root, users tecmint Cambiando la ubicación predeterminada del directorio de inicio del usuario

Use el -d , o –home opciones, seguidas de la ruta absoluta al nuevo directorio de inicio.

# usermod–home/tmp tecmint Cambiando el shell que usará el usuario por predeterminado

Use –shell , seguido de la ruta al nuevo shell.

# usermod–shell/bin/sh tecmint Visualización de los grupos de los que un usuario es miembro # grupos tecmint # id tecmint

Ahora ejecutemos todos los comandos anteriores de una vez.

# usermod–expiredate 2014-10-30–append–groups root, users–home/tmp–shell/bin/sh tecmint  usermod Command Ejemplos  usermod Ejemplos de comandos Ejemplos de comandos de usermod

En el ejemplo anterior, estableceremos la fecha de caducidad de la cuenta de usuario tecmint. en 30 de octubre de 2014. También agregaremos la cuenta a la raíz. y al grupo de usuarios. Finalmente, estableceremos sh como su shell predeterminado y cambiaremos la ubicación del directorio de inicio a /tmp.

Leer también :

  1. 15 ejemplos de comandos useradd en Linux
  2. 15 ejemplos de comandos usermod en Linux

Para cuentas existentes, también podemos hacer lo siguiente.

Deshabilitar la cuenta bloqueando la contraseña

Utilice la opción -L (L mayúscula) o –bloquear para bloquear la contraseña de un usuario.

# usermod-bloquear tecmint Desbloqueo de la contraseña del usuario

Utilice la opción –u o –unlock para desbloquear la contraseña de un usuario que estaba previamente bloqueada.

# usermod–unlock tecmint  Bloquear usuario en Linux  Bloquear usuario en Linux Bloquear cuentas de usuario Crear un nuevo grupo para acceso de lectura y escritura a archivos a los que deben acceder varios usuarios

Ejecute la siguiente serie de comandos para lograr el objetivo.

# groupadd common_group # Agregar un nuevo grupo # chown: common_group common.txt # Cambiar el propietario del grupo de common.txt a common_group # usermod-aG common_group user1 # Agregar usuario1 a common_group # usermod-aG common_group user2 # Agregar usuario2 a common_group # usermod-aG common_g roup user3 # Agregar usuario3 a common_group Eliminando un grupo

Puede eliminar un grupo con el siguiente comando.

# groupdel [group_name]

Si hay archivos propiedad de group_name , no se eliminarán, pero el propietario del grupo se establecerá en el GID del grupo que se eliminó.

Permisos de archivos de Linux

Además de los leer, escribir y ejecutar permisos que discutimos en Herramientas de archivo y configuración de atributos de archivo-Parte 3 de esta serie, hay otras configuraciones de permisos menos utilizadas (pero no menos importantes), a veces denominadas “ permisos especiales ”.

Al igual que los permisos básicos discutidos anteriormente, se establecen mediante un archivo octal o mediante una letra (notación simbólica) que indica el tipo de permiso.

Eliminando cuentas de usuario

Puede eliminar una cuenta (junto con su directorio de inicio, si es propiedad del usuario, y todos los archivos que residen en ella, y también el spool de correo) usando el userdel comando con la opción –remove .

# userdel–remove [nombre de usuario] Administración de grupos

Cada vez que se agrega una nueva cuenta de usuario al sistema, un grupo con la misma El nombre se crea con el nombre de usuario como único miembro. Se pueden agregar otros usuarios al grupo más tarde. Uno de los propósitos de los grupos es implementar un control de acceso simple a archivos y otros recursos del sistema estableciendo los permisos correctos en esos recursos.

Por ejemplo, suponga que tiene los siguientes usuarios.

  1. usuario1 (grupo principal: usuario1)
  2. usuario2 (grupo principal: usuario2)
  3. usuario3 (grupo principal: usuario3)

Todos ellos necesitan acceso de lectura y escritura a un archivo llamado common.txt ubicado en algún lugar de su sistema local, o tal vez en un recurso compartido de red. que ha creado usuario1 . Puede tener la tentación de hacer algo como,

# chmod 660 common.txt O # chmod u = rw, g = rw, o = common.txt [observe el espacio entre el último signo igual y el nombre del archivo]

Sin embargo, esto solo proporcionará acceso de lectura y escritura al propietario del archivo y a aquellos usuarios que sean miembros del grupo propietario del archivo ( user1 en este caso). Nuevamente, puede tener la tentación de agregar usuario2 y usuario3 al grupo usuario1 , pero eso también les dará acceso al resto de los archivos que poseen. por el usuario usuario1 y el grupo usuario1 .

Aquí es donde los grupos son útiles, y esto es lo que debe hacer en un caso como este.

Comprensión de Setuid

Cuando se aplica el permiso setuid a un archivo ejecutable, un usuario que ejecuta el programa hereda los privilegios efectivos del propietario del programa. Dado que este enfoque puede plantear razonablemente problemas de seguridad, la cantidad de archivos con permiso setuid debe mantenerse al mínimo. Es probable que encuentre programas con este conjunto de permisos cuando un usuario del sistema necesite acceder a un archivo propiedad de root.

En resumen, no se trata solo de que el usuario pueda ejecutar el archivo binario, sino también de que puede hacerlo con los privilegios de root. Por ejemplo, verifiquemos los permisos de /bin/passwd . Este binario se utiliza para cambiar la contraseña de una cuenta y modifica el archivo /etc/shadow . El superusuario puede cambiar la contraseña de cualquier persona, pero todos los demás usuarios solo deberían poder cambiar la suya propia.

 passwd Ejemplos de comandos  ejemplos de comandos passwd ejemplos de comandos passwd

Así, cualquier usuario debe tener permiso para ejecutar /bin/passwd , pero solo el root podrá especificar una cuenta. Otros usuarios solo pueden cambiar sus contraseñas correspondientes.

Cambiar contraseña de usuario en Linux  Cambiar contraseña de usuario en Linux Cambiar contraseña de usuario

Comprensión Setgid

Cuando se establece el bit setgid , el GID efectivo del usuario real se convierte en el del propietario del grupo. Por lo tanto, cualquier usuario puede acceder a un archivo con los privilegios otorgados al propietario del grupo de dicho archivo. Además, cuando el bit setgid se establece en un directorio, los archivos recién creados heredan el mismo grupo que el directorio, y los subdirectorios recién creados también heredarán el bit setgid del directorio principal. Lo más probable es que utilice este enfoque siempre que los miembros de un determinado grupo necesiten acceder a todos los archivos de un directorio, independientemente del grupo principal del propietario del archivo.

# chmod g + s [nombre de archivo]

Para configurar el setgid en forma octal, anteponga el número 2 a los permisos básicos actuales (o deseados).

# chmod 2755 [directorio] Configuración del SETGID en un directorio  Agregar Setgid en Linux  Agregar Setgid en Linux Agregar Setgid al directorio Entendiendo Sticky Bit

Cuando el” sticky bit “está configurado en archivos, Linux simplemente lo ignora, mientras que para directorios tiene el efecto de evitar que los usuarios eliminen o incluso cambiando el nombre de los archivos que contiene, a menos que el usuario sea propietario del directorio, el archivo o sea root.

# chmod o + t [directorio]

Para establecer el bit adhesivo en forma octal, anteponga el número 1 a los permisos básicos actuales (o deseados).

# chmod 1755 [directorio]

Sin el bit adhesivo, cualquiera que pueda escribir en el directorio puede eliminar o cambiar el nombre de los archivos. Por esa razón, el bit pegajoso se encuentra comúnmente en directorios, como /tmp , que se pueden escribir en todo el mundo.

 Agregar Stickybit en Linux  Agregar Stickybit en Linux Agregar Stickybit al directorio

Atributos especiales de archivos de Linux

Hay otros atributos que permiten límites adicionales en las operaciones permitidas en archivos. Por ejemplo, evite que se cambie el nombre del archivo, se mueva, se elimine o incluso se modifique. Se configuran con el comando chattr y se pueden ver usando la herramienta lsattr. de la siguiente manera.

# chattr + i file1 # chattr + a file2

Después de ejecutar esos dos comandos, file1 será inmutable (lo que significa que no se puede mover, renombrar, modificar o eliminar) mientras que file2 ingresará al modo de solo agregar (solo se puede abrir en el modo de agregar para escribir) .

 Proteger el archivo para que no se borre  Proteger archivo contra eliminación Comando Chattr para proteger archivos

Acceder a la cuenta raíz y usar sudo

Uno de los las formas en que los usuarios pueden obtener acceso a la cuenta raíz es por ing.

$ su

y luego ingresando la contraseña de root.

Si la autenticación tiene éxito, iniciará sesión como root con el directorio de trabajo actual igual como eras antes. Si desea ser colocado en el directorio de inicio de root, ejecute.

$ su-

y luego ingrese la contraseña de root.

 Habilitar sudo Access en Linux  Habilitar acceso a sudo en Linux Habilitar el acceso a Sudo en los usuarios

El procedimiento anterior requiere que un usuario normal conozca la contraseña de root, lo que representa un grave riesgo de seguridad. Por esa razón, el administrador del sistema puede configurar el comando sudo para permitir que un usuario común ejecute comandos como un usuario diferente (generalmente el superusuario) de una manera muy controlada y limitada. Por lo tanto, se pueden establecer restricciones en un usuario para permitirle ejecutar uno o más comandos privilegiados específicos y ningún otro.

Lea también : Diferencia entre el usuario su y sudo

# ldd $ (qué inicio de sesión) | grep libpam # login usa PAM # ldd $ (que arriba) | grep libpam # top no usa PAM  Comprobar la biblioteca PAM de Linux  Verificar biblioteca PAM de Linux Verificar biblioteca PAM de Linux

En la imagen de arriba podemos ver que libpam. se ha vinculado con la aplicación de inicio de sesión. Esto tiene sentido ya que esta aplicación está involucrada en la operación de autenticación de usuario del sistema, mientras que top no lo hace.

Examinemos el archivo de configuración PAM para passwd. sí, el conocido utilidad para cambiar las contraseñas de los usuarios. Se encuentra en /etc/pam.d/passwd.

# cat/etc/passwd  Archivo de configuración PAM para Linux Contraseña Archivo de configuración de PAM para contraseña de Linux Archivo de configuración PAM para contraseña de Linux

La primera columna indica el tipo de autenticación que se utilizará con la ruta del módulo (tercera columna). Cuando aparece un guión antes del tipo, PAM no registrará en el registro del sistema si el módulo no se puede cargar porque no se pudo encontrar en el sistema.

Los siguientes tipos de autenticación están disponibles:

  1. cuenta: este tipo de módulo verifica si el usuario o servicio ha proporcionado credenciales válidas para autenticarse.
  2. auth: este tipo de módulo verifica que el usuario es quien dice ser y otorga cualquier privilegio necesario.
  3. contraseña: este tipo de módulo permite al usuario o servicio actualizar su contraseña.
  4. sesión: este tipo de módulo indica qué se debe hacer antes y/o después de la autenticación tiene éxito.

La segunda columna (llamada control) indica qué debe suceder si falla la autenticación con este módulo:

  1. requisito: si la autenticación a través de este módulo falla, la autenticación general se denegará de inmediato.
  2. Requerido es similar al requisito, aunque todos los demás módulos enumerados para este servicio se llamarán antes de negar la autenticación.
  3. suficiente: si la autenticación a través de este módulo falla, PAM aún otorgará la autenticación incluso si una marca previa como requerida falló.
  4. opcional: si la autenticación a través de este módulo falla o tiene éxito, no sucede nada a menos que este sea el único módulo de su tipo definido para este servicio.
  5. incluir significa que las líneas del tipo dado deben leerse desde otro archivo.
  6. La subcategoría es similar a la de inclusiones, pero las fallas o los éxitos de autenticación no provocan la salida del módulo completo, sino solo de la subcategoría.

La cuarta columna, si existe, muestra que los argumentos son pasado al módulo.

Las primeras tres líneas en /etc/pam.d/passwd. (mostradas arriba), cargan el módulo system-auth. para comprobar que el usuario ha proporcionado credenciales válidas (cuenta). Si es así, le permite cambiar el token de autenticación (contraseña) dando permiso para usar passwd ( auth. .

Por ejemplo, si agrega

recuerde = 2

a la siguiente línea

contraseña suficiente pam_unix.so sha512 shadow nullok try_first_pass use_authtok

en /etc/pam.d/system-auth.

contraseña suficiente pam_unix.so sha512 shadow nullok try_first_pass use_authtok recuerda = 2

las dos últimas contraseñas hash de cada usuario se guardan en /etc/security/opasswd. para que no se puedan reutilizar: