Administración de usuarios y grupos, permisos y atributos de archivos y habilitando el acceso a sudo en las cuentas - Parte 8

Administración de usuarios y grupos, permisos y atributos de archivos y habilitando el acceso a sudo en las cuentas - Parte 8

En agosto pasado, la Fundación Linux comenzó la LFCS Certificación (Sysadmin certificado por la Fundación Linux), un nuevo programa cuyo propósito es permitir que las personas en todas partes y en cualquier lugar realicen un examen para obtener la certificación en soporte operativo básico a intermedio para los sistemas Linux, que incluye el soporte de sistemas y servicios de ejecución, junto con el monitoreo y el análisis general, más inteligente toma de decisiones para poder decidir cuándo es necesario aumentar los problemas a los equipos de apoyo de nivel superior.

Sysadmin certificado por la Fundación Linux - Parte 8

Eche un vistazo rápido al siguiente video que describe una introducción al Programa de Certificación de la Fundación Linux.

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 los usuarios y grupos en el sistema Linux, que se requieren para el examen de certificación LFCS.

Dado que Linux es un sistema operativo multiusuario (ya que permite que varios usuarios en diferentes computadoras o terminales accedan a un solo sistema), deberá saber cómo realizar una administración efectiva de usuarios: cómo agregar, editar, suspender o eliminar Cuentas de usuario, junto con otorgarles los permisos necesarios para hacer sus tareas asignadas.

Agregar cuentas de usuario

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

# adduser [new_account] # userAdd [new_account] 

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

1. Se crea su directorio de casa (/Inicio/nombre de usuario por defecto).

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

.bash_logout .bash_profile .bashrc 

3. Se crea un carrete de correo para el usuario a/var/spool/mail/nombre de usuario.

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

Comprensión /etc /passwd

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

[Nombre de usuario]: [x]: [uid]: [GID]: [comentario]: [Directorio de inicio]: [shell predeterminado] 
  1. Campos [nombre de usuario] y [Comentario] se explican por sí mismos.
  2. El X En el segundo campo indica que la cuenta está protegida por una contraseña sombreada (en /etc/sombra), que se necesita para iniciar sesión como [nombre de usuario].
  3. El [Uid] y [GID] Los campos son enteros que representan la identificación del usuario y la identificación del grupo principal a la que [nombre de usuario] pertenece, respectivamente.
  4. El [Directorio de inicio] indica el camino absoluto a [nombre de usuario]D directorio de inicio, y
  5. El [Shell predeterminado] es el caparazón que estará disponible para este usuario cuando inicie sesión en el sistema.
Comprensión /etc /grupo

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

[Nombre del grupo]: [Contraseña del grupo]: [GID]: [miembros del grupo] 
  1. [Nombre del grupo] es el nombre del grupo.
  2. Un X en [Contraseña de grupo] indica que las contraseñas de grupo no se están utilizando.
  3. [GID]: igual que en /etc /passwd.
  4. [Miembros del grupo]: Una lista separada por coma de usuarios que son miembros de [Nombre del grupo].
Agregar cuentas de usuario

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

# usermod [opciones] [nombre de usuario] 
Establecer la fecha de vencimiento para una cuenta

Utilizar el -fecha de caducidad bandera seguida de una fecha en Yyyy-mm-dd formato.

# usermod-expirado 2014-10-30 Tecmint 
Agregar al usuario a grupos complementarios

Use el combinado -agotamiento, o -adjuntar -grupos Opciones, seguidas de una lista de grupos separadas por coma.

# usermod --append --groups root, usuarios TecMint 
Cambio de la ubicación predeterminada del directorio de inicio del usuario

Utilizar el -d, o -hogar Opciones, seguidas de la ruta absoluta al nuevo directorio de inicio.

# usermod -home /tmp tecmint 
Cambiar el shell que el usuario usará de forma predeterminada

Usar -caparazón, seguido por el camino hacia el nuevo shell.

# usermod --shell /bin /sh tecmint 
Mostrar los grupos que un usuario es miembro de
# Grupos Tecmint # ID TECMINT 

Ahora ejecutemos todos los comandos anteriores de una vez.

# usermod --expiredate 2014-10-30 --append-grupos root, usuarios --home /tmp --shell /bin /sh tecmint 
Ejemplos de comando usermod

En el ejemplo anterior, estableceremos la fecha de vencimiento del tecmenta cuenta de usuario a 30 de octubre de 2014. También agregaremos la cuenta al raíz y grupo de usuarios. Finalmente, estableceremos mierda como su shell predeterminado y cambiar la ubicación del directorio de inicio a /TMP:

Leer también:

  1. 15 Ejemplos de comandos de usuarios en Linux
  2. 15 Ejemplos de comando usermod en Linux

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

Desactivar la cuenta bloqueando la contraseña

Utilizar el -L (mayúscula l) o el -cerrar opción para bloquear la contraseña de un usuario.

# usermod --lock tecmint 
Desbloqueo de contraseña de usuario

Utilizar el -u o el -desbloquear opción para desbloquear la contraseña de un usuario que se bloqueó previamente.

# usermod -tecmint Unnlock 
Bloquear cuentas de usuario
Creación de un nuevo grupo para el 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 al propietario del grupo de Common.txt a Common_group # usermod -ag Common_group User1 # Agregar usuarios1 a Common_Group # usermod -ag Common_group User2 # Agregar user2 a Common_group # usermod -ag Common_group User3 # Agregar user3 a Common_Group 
Eliminar un grupo

Puede eliminar un grupo con el siguiente comando.

# Groupdel [Group_name] 

Si hay archivos propiedad de Nombre del grupo, no serán eliminados, pero el propietario del grupo se establecerá en el Aturdir del grupo que fue eliminado.

Permisos de archivo de Linux

Además de los permisos básicos de lectura, escritura y ejecución que discutimos en el archivo de las herramientas y la configuración de los atributos del archivo: la Parte 3 de esta serie, hay otras configuraciones de permiso menos utilizadas (pero no menos importantes), a veces denominadas "Permisos especiales".

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

Eliminar 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 él, y también el carrete de correo) utilizando el usuarios comando con el -eliminar opción.

# UserDel - -Remove [Nombre de usuario] 

Manejo de grupo

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

Por ejemplo, suponga que tiene los siguientes usuarios.

  1. Usuario1 (grupo primario: usuario1)
  2. User2 (grupo primario: usuario2)
  3. User3 (Grupo principal: User3)

Todos ellos necesitan leer y escribir Acceso a un archivo llamado común.TXT ubicado en algún lugar de su sistema local, o tal vez en una red compartir eso usuario1 ha creado. Puede estar tentado a hacer algo como,

# Chmod 660 Common.txt o # chmod u = rw, g = rw, o = común.txt [Observe el espacio entre el último signo igual y el nombre del archivo] 

Sin embargo, esto solo proporcionará leer y escribir acceso al propietario del archivo y a aquellos usuarios que son miembros del propietario del grupo del archivo (usuario1 en este caso). De nuevo, puede tener la tentación de agregar usuario2 y Usuario3 a agrupar usuario1, pero eso también les dará acceso al resto de los archivos propiedad del usuario usuario1 y grupo usuario1.

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

Comprender setuid

Cuando el setuid El permiso se aplica 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 las preocupaciones de seguridad, el número de archivos con permiso setuid debe mantenerse al mínimo. Es probable que encuentre programas con este permiso establecido cuando un usuario del sistema necesita acceder a un archivo propiedad de root.

Resumiendo, no es solo que el usuario pueda ejecutar el archivo binario, sino también 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 /etc/sombra archivo. El superusador puede cambiar la contraseña de cualquier persona, pero todos los demás usuarios solo deberían poder cambiar su propio.

Ejemplos de comando passwd

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

Cambiar la contraseña de usuario
Comprensión de SetGid

Cuando el setgid Bit está establecido, el efectivo Aturdir del verdadero usuario se convierte en el del propietario del grupo. Por lo tanto, cualquier usuario puede acceder a un archivo bajo 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á el bit SetGID del directorio principal. Lo más probable es que use este enfoque cuando los miembros de un determinado grupo necesiten acceso a todos los archivos en un directorio, independientemente del grupo principal del propietario del archivo.

# Chmod G+S [nombre de archivo] 

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

# CHMOD 2755 [Directorio] 
Configurar el setgid en un directorio
Agregar setgid al directorio
Comprender el bit pegajoso

Cuando el "broca pegajosa"Se establece en archivos, Linux simplemente lo ignora, mientras que para los directorios tiene el efecto de evitar que los usuarios eliminen o incluso renombran los archivos que contiene a menos que el usuario posea el directorio, el archivo o es root.

# chmod o+t [directorio] 

Para establecer el broca pegajosa en forma octal, prevenir el número 1 a los permisos básicos actuales (o deseados).

# Chmod 1755 [Directorio] 

Sin el bit pegajoso, cualquier persona capaz de 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 son mundialmente escritos.

Agregar Stickybit al directorio

Atributos especiales de archivo de Linux

Hay otros atributos que permiten mayores límites en las operaciones que se permiten en los archivos. Por ejemplo, evite que el archivo sea renombrado, se mueva, elimine o incluso modifique. Están configurados con el comando chattr y se pueden ver utilizando el lsattr herramienta, como sigue.

# chattr +i archivo1 # chattr +un archivo2 

Después de ejecutar esos dos comandos, archivo1 será inmutable (lo que significa que no se puede mover, renombrar, modificar o eliminar) mientras archivo2 Ingresará al modo de solo appaje (solo puede estar abierto en modo de anexo para escribir).

Comando chattr para proteger archivos

Acceder a la cuenta raíz y usar sudo

Una de las formas en que los usuarios pueden obtener acceso a la cuenta raíz es escribiendo.

$ su 

Y luego ingresando la contraseña de Root.

Si la autenticación tiene éxito, se registrará como raíz con el directorio de trabajo actual como el mismo que era antes. Si desea ser colocado en el directorio de inicio de Root, ejecute.

$ su - 

Y luego ingrese la contraseña de Root.

Habilitar el acceso a sudo en los usuarios

El procedimiento anterior requiere que un usuario normal conozca la contraseña de Root, que plantea un riesgo de seguridad grave. Por esa razón, el sysadmin puede configurar el sudo Comando para permitir que un usuario ordinario ejecute comandos como un usuario diferente (generalmente el superusor) de una manera muy controlada y limitada. Por lo tanto, las restricciones se pueden establecer en un usuario para permitirle ejecutar uno o más comandos privilegiados específicos y no otros.

Leer también: Diferencia entre SU y User de sudo

Para autenticar usando sudo, el usuario usa su propia contraseña. Después de ingresar al comando, se nos solicitará nuestra contraseña (no la superusor) y si la autenticación tiene éxito (y si se le ha otorgado privilegios al usuario para ejecutar el comando), el comando especificado se lleva a cabo.

Para otorgar acceso a sudo, el administrador del sistema debe editar el /etc/sudoers archivo. Se recomienda que este archivo se edite utilizando el visudo comando en lugar de abrirlo directamente con un editor de texto.

# Visudo 

Esto abre el /etc/sudoers archivo usando empuje (Puede seguir las instrucciones dadas en la instalación y usar VIM como editor - Parte 2 de esta serie para editar el archivo).

Estas son las líneas más relevantes.

Defaults seguros_path = "/usr/sbin:/usr/bin:/sbin" root all = (all) All TecMint all =/bin/yum Update Gacanepa all = nopasswd:/bin/actualateB %admin de admin = (All) 

Echemos un vistazo más de cerca.

Los valores predeterminados secure_path = "/usr/sbin:/usr/bin:/sbin:/usr/local/bin" 

Esta línea le permite especificar los directorios que se utilizarán para sudo, y se utiliza para evitar el uso de directorios específicos del usuario, que pueden dañar el sistema.

Las siguientes líneas se utilizan para especificar permisos.

root todos = (todos) todos 
  1. La primera TODO La palabra clave indica que esta regla se aplica a todos los hosts.
  2. El segundo TODO indica que el usuario en la primera columna puede ejecutar comandos con los privilegios de cualquier usuario.
  3. El tercero TODO significa que se puede ejecutar cualquier comando.
TecMint all =/bin/yum actualización 

Si no se especifica ningún usuario después del = firmar, sudo asume el usuario raíz. En este caso, usuario tecmenta podrá correr Actualización de Yum como root.

Gacanepa all = nopasswd:/bin/actualizado 

El Nopasswd La directiva permite que el usuario Gacanepa se ejecute /bin/actualatedb sin necesidad de ingresar su contraseña.

%admin all = (todos) todos 

El De % El signo indica que esta línea se aplica a un grupo llamado "administración". El significado del resto de la línea es idéntico al de un usuario regular. Esto significa que los miembros del grupo "administración"Puede ejecutar todos los comandos como cualquier usuario en todos los hosts.

Para ver qué privilegios le otorgan sudo, use el "-l"Opción para enumerarlos.

Reglas de acceso a sudo

PAM (módulos de autenticación conectables)

Módulos de autenticación conectables (PAM) Ofrecen la flexibilidad de establecer un esquema de autenticación específico sobre una solicitud por aplicación y / o por servicio utilizando módulos. Esta herramienta presente en todas las distribuciones modernas de Linux superó el problema que a menudo enfrentan los desarrolladores en los primeros días de Linux, cuando cada programa que requería autenticación tenía que ser compilado especialmente para saber cómo obtener la información necesaria.

Por ejemplo, con PAM, no importa si su contraseña se almacena en /etc/sombra o en un servidor separado dentro de su red.

Por ejemplo, cuando el programa de inicio de sesión necesita autenticar a un usuario, PAM proporciona dinámicamente la biblioteca que contiene las funciones para el esquema de autenticación correcto. Por lo tanto, cambiar el esquema de autenticación para la aplicación de inicio de sesión (o cualquier otro programa que use PAM) es fácil, ya que solo implica editar un archivo de configuración (muy probablemente, un archivo que lleva el nombre de la aplicación, ubicado dentro /etc/pam.d, y menos probable en /etc/pam.confusión).

Archivos en el interior /etc/pam.d indicar qué aplicaciones están utilizando PAM de forma nativa. Además, podemos saber si una determinada aplicación usa PAM verificando si es la biblioteca PAM (libpam) ha sido vinculado a él:

# ldd $ (que inicia sesión) | Grep libpam # login usa pam # ldd $ (que superior) | Grep libpam # top no usa pam 
Verifique la biblioteca de Linux PAM

En la imagen de arriba podemos ver que el 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 la autenticación del usuario del sistema, mientras que TOP no.

Examinemos el archivo de configuración de PAM para pasada - Sí, la utilidad conocida para cambiar las contraseñas del usuario. Está localizado en /etc/pam.D/PASSWD:

# CAT /ETC /PASSWD 
Archivo de configuración de PAM para la contraseña de Linux

La primera columna indica el tipo de autenticación que se utilizará con el módulo (tercera columna). Cuando aparece un guión antes del tipo, PAM no grabará en el registro del sistema si el módulo no se puede cargar porque no se puede 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 suministrado credenciales válidas para autenticar.
  2. auténtico: Este tipo de módulo verifica que el usuario es quien dice ser y otorga los privilegios necesarios.
  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 lo que se debe hacer antes y/o después de que la autenticación tenga éxito.

La segunda columna (llamada control) indica lo que debería suceder si la autenticación con este módulo falla:

  1. requisito: Si la autenticación a través de este módulo falla, la autenticación general se negará de inmediato.
  2. requerido es similar al requisito, aunque todos los demás módulos listados 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á autenticación incluso si un anterior marcado según lo requerido 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. sustitución es similar a las fallas o éxitos de la autenticación, pero no causan la salida del módulo completo, sino solo del subsack.

La cuarta columna, si existe, muestra los argumentos que se pasarán al módulo.

Las primeras tres líneas en /etc/pam.D/PASSWD (que se muestra arriba), cargue el autónomo módulo para verificar que el usuario haya suministrado credenciales válidas (cuenta). Si es así, le permite cambiar el token de autenticación (contraseña) dando permiso para usar PASSWD (auténtico).

Por ejemplo, si se agrega

Recuerda = 2 

a la siguiente línea

contraseña suficiente pam_unix.Entonces SHA512 Shadow nullok try_first_pass use_authtok 

en /etc/pam.D/System-Auth:

contraseña suficiente pam_unix.Entonces SHA512 Shadow nullok try_first_pass use_authtok recuerda = 2 

Las dos últimas contraseñas hash de cada usuario se guardan en /etc/seguridad/opasswd para que no puedan ser reutilizados:

Campos de contraseña de Linux

Resumen

Las habilidades efectivas de gestión de usuarios y archivos son herramientas esenciales para cualquier administrador del sistema. En este artículo hemos cubierto los conceptos básicos y esperamos que pueda usarlo como un buen comienzo a señalar para construir. No dude en dejar sus comentarios o preguntas a continuación, y responderemos rápidamente.

Convertirse en administrador del sistema certificado por Linux