Grupos de usuarios de Linux. Usuarios y grupos en Linux. Agregar borrar editar usuarios Verificación de cuenta

La base para la distribución de los derechos de acceso en el sistema operativo Linux reside en el concepto de usuario. El usuario propietario del archivo recibe ciertos permisos para trabajar con él, es decir, para leer, escribir y ejecutar. Los permisos de lectura, escritura y ejecución también se configuran por separado para todos los demás usuarios. Dado que en Linux todo es un archivo, dicho sistema le permite regular el acceso a cualquier acción en este sistema operativo estableciendo derechos de acceso a los archivos. Pero incluso al crear Linux, los desarrolladores se dieron cuenta de que claramente esto no era suficiente.

Por eso se inventaron los grupos de usuarios. Los usuarios pueden unirse en grupos para otorgarles los permisos necesarios para acceder a ciertos archivos y, en consecuencia, a acciones. En este artículo veremos los grupos de usuarios en Linux, veremos por qué son necesarios, cómo agregar un usuario a un grupo y administrar grupos.

Como ya dije, los grupos en Linux aparecieron desde el comienzo del desarrollo de este sistema operativo. Fueron diseñados para mejorar las capacidades de gestión de derechos. Veamos un pequeño ejemplo, tomemos una organización en la que solo hay una computadora, tenemos administradores y usuarios. Cada persona tiene su propia cuenta en nuestro ordenador. Los administradores pueden personalizar el sistema, pero es mejor que los usuarios no den rienda suelta para no romper algo. Por lo tanto, los administradores están unidos en el grupo de administración y se les da acceso a todos los equipos, de hecho, a todos los archivos en el directorio de desarrollo, y los usuarios están unidos en el grupo de usuarios, y este grupo tiene la capacidad de leer y escribir. archivos a un directorio común, con la ayuda del cual pueden compartir los resultados de su trabajo. Podríamos asignar derechos para cada usuario por separado, permitiéndole acceder a un archivo en particular, pero esto es demasiado inconveniente. Por eso se inventaron los grupos. Dices, está bien, ¿puedo nombrarte? Bueno, ahora imagina que nuestros usuarios son procesos. Aquí es donde la belleza de los grupos pasa a primer plano; los grupos se utilizan no tanto para proporcionar acceso a los usuarios, sino para gestionar los derechos de los programas, especialmente su acceso al hardware. Se crean grupos separados para los servicios y el usuario en cuyo nombre se inicia; un servicio puede ser miembro de varios grupos, lo que le proporciona acceso a ciertos recursos.

Ahora veamos cómo ver grupos de Linux.

Grupos en Linux

Todos los grupos creados en el sistema se encuentran en el archivo /etc/group. Al observar el contenido de este archivo, puede encontrar la lista de grupos de Linux que ya están en su sistema. Y te sorprenderás.

Además de la raíz y los usuarios estándar, aquí hay un par de docenas de grupos más. Estos son grupos creados por programas para controlar el acceso de esos programas a recursos compartidos. Cada grupo permite leer o escribir un archivo o directorio específico en el sistema, regulando así los permisos del usuario, y por tanto el proceso que se ejecuta como ese usuario. Aquí podemos considerar que un usuario es lo mismo que un proceso, porque el proceso tiene todos los derechos del usuario desde el que se inicia.

Echemos un vistazo más de cerca a cada uno de los grupos para comprender mejor por qué son necesarios:

  • demonio- Los servicios que necesitan la capacidad de escribir archivos en el disco se inician en nombre de este grupo y del usuario del demonio.
  • sistema- el grupo proporciona acceso a las fuentes del kernel e incluye archivos guardados en el sistema
  • sincronizar- le permite ejecutar el comando /bin/sync
  • juegos- Permite que los juegos escriban sus archivos de configuración y su historial en una carpeta específica
  • hombre- le permite agregar páginas al directorio /var/cache/man
  • lp- permite el uso de dispositivos de puerto paralelo
  • correo- le permite escribir datos en buzones de correo /var/mail/
  • apoderado- utilizado por servidores proxy, sin acceso para escribir archivos en el disco
  • www-datos- el servidor web comienza con este grupo, da acceso a la entrada /var/www, donde se encuentran los archivos del documento web
  • lista- le permite ver mensajes en /var/mail
  • no grupo- se utiliza para procesos que no pueden crear archivos en el disco duro, sino solo leerlos, generalmente se usa junto con el usuario nadie.
  • adm- le permite leer registros desde el directorio /var/log
  • tty- todos los dispositivos /dev/vca permiten acceso de lectura y escritura a usuarios de este grupo
  • disco- abre el acceso a los discos duros /dev/sd* /dev/hd*, podemos decir que esto es un análogo del acceso root.
  • marcar hacia afuera- acceso completo al puerto serie
  • CD ROM- acceso al CD-ROM
  • rueda- le permite ejecutar la utilidad sudo para escalar privilegios
  • audio- gestión de controladores de audio
  • src- acceso completo a las fuentes en el directorio /usr/src/
  • sombra- permite leer el archivo /etc/shadow
  • utmp- permite escribir en archivos /var/log/utmp /var/log/wtmp
  • video- le permite trabajar con el controlador de video
  • plugdev- permite montar dispositivos externos USB, CD, etc.
  • personal- permite escribir en la carpeta /usr/local

Ahora que sabe por qué usa grupos en Linux y cuáles son de forma predeterminada, veamos cómo administrar grupos de LInux.

Gestión de grupos de Linux

También puedes gestionar grupos mediante la interfaz gráfica. KDE tiene un programa llamado Kuser diseñado específicamente para esto, y en Gnome se hace usando la configuración del sistema. Además, las distribuciones populares tienen herramientas independientes, como YaST en OpenSUSE o Configuración de Ubuntu. Pero creo que lo resolverás con la interfaz gráfica. Y veremos cómo administrar grupos de Linux a través de la terminal. Primero, nos ocuparemos de los archivos y solo luego de los usuarios.

Cuando se crea un archivo, se le asigna el grupo principal del usuario que lo creó. Es así:

Aquí puedes ver que el propietario de todas las carpetas es sergiy y el grupo también es sergiy. Correcto, ya que estos usuarios fueron creados por mí. Pero vayamos más allá:

Aquí vemos que los dispositivos de disco sd* están asignados al grupo de discos, lo que significa que un usuario que pertenece a este grupo puede acceder a ellos. U otro ejemplo:

Todo es como comentamos en el párrafo anterior. Pero estos grupos no sólo pueden ser configurados por el sistema, sino que usted mismo puede cambiar manualmente los grupos de archivos; para esto existe el comando chgrp:

chgrp nombre_grupo nombre_archivo

Por ejemplo, creemos un archivo de prueba:

Y cambiemos el grupo por ello:

Si desea crear un grupo de Linux, puede hacerlo con el comando newgrp:

prueba sudo groupadd

La situación con los usuarios es un poco más complicada. El usuario tiene un grupo principal, que se especifica durante la creación, así como varios adicionales. El grupo principal se diferencia de los habituales en que todos los archivos en el directorio de inicio del usuario tienen este grupo, y cuando se cambia, el grupo de estos directorios también cambiará. Además, todos los archivos creados por el usuario reciben este grupo. Se necesitan grupos adicionales para que podamos permitir a los usuarios acceder a diferentes recursos agregándolos a estos grupos en Linux.

La gestión de grupos de Linux para un usuario se realiza mediante el comando usermod. Veamos su sintaxis y opciones:

Opciones de $usuario Nombre de usuario

  • -GRAMO- grupos adicionales a los que necesita agregar el usuario
  • -gramo cambiar el grupo principal para el usuario
  • -R eliminar un usuario de un grupo.

Puede agregar un usuario a un grupo usando el comando usermod:

sudo usermod -G -a nombre_de_grupo nombre de usuario

Puede agregar un usuario al grupo de Linux temporalmente usando el comando newgrp. Se abrirá un nuevo shell, y en él el usuario tendrá los permisos necesarios, pero luego de cerrar todo volverá como estaba:

sudo newgrp nombre_grupo

Como ejemplo, agreguemos nuestro usuario al grupo de discos para que podamos acceder directamente a los discos duros sin el comando sudo:

sudo usermod -G -a disco sergiy

Ahora puedes montar discos sin el comando sudo:

montar /dev/sda1 /mnt

Puede ver los grupos de Linux de los que es miembro el usuario con el comando:

También puedes usar el comando id. En el primer caso simplemente vemos una lista de grupos de Linux, en el segundo además se indica el grupo y la identificación del usuario. Para agregar un usuario a un grupo de Linux, use la opción -g para el grupo principal.

Creemos el usuario vivek y agréguemoslo al grupo de desarrolladores. Inicie sesión como usuario root:

Por ejemplo, agreguemos un usuario. vivek:

agregar usuario -g usuarios -G administradores, ftp, www, desarrolladores -s/bin/bash -pagxxxx-d/home/fantasma -m vivek

  • -d directorio de inicio
  • -s configure el shell inicial (/bin/sh); luego puede cambiarlo en el archivo /etc/contraseña
  • -pag contraseña
  • -gramo grupo principal al que está asignado el usuario (el grupo debe existir)
  • -GRAMO otros grupos a los que está asignado el usuario
  • -metro crear un directorio de inicio para el usuario
  • contraseña de usuario de carácter xxxx

Asegurémonos de que el grupo de desarrolladores exista:

# desarrolladores grep /etc/group

Si no hay ningún grupo, use el comando agregar grupo para crear un nuevo grupo de desarrolladores:

Ahora usando el comando mod de usuario agregue el usuario vivek al grupo de desarrolladores:

# desarrolladores adduser vivek y desarrolladores newgrp

Asegurémonos de que el usuario esté agregado al grupo de desarrolladores:

#id vivek
Producción:
uid=1122(vivek) gid=1125(vivek) grupos=1125(vivek),1124(desarrolladores)

Establecer/cambiar la contraseña para el usuario vivek:

juguemos con grupos

Digámosle al usuario vivek que participe solo en el grupo de desarrolladores.

mod de usuario-G desarrolladores vivek

Digámosle al usuario vivek que participe solo en los grupos de administradores, ftp, www, desarrolladores ingresando:

# usermod -G administradores,ftp,www,desarrolladores vivek

Eliminemos al usuario vivek de algunos grupos (reasignémosle los grupos):

# usuariomod -G ftp,www vivek

ahora vivek no está incluido en los grupos de administradores y desarrolladores.

Nota: equipo mod de usuario no cambiará el nombre de usuario si ese usuario está actualmente conectado al sistema.

usuariodel- borrar usuario

Por ejemplo, elimine el usuario vivek:

  • -r eliminar el usuario junto con el directorio de inicio

SINTAXIS detallada

agregar usuario [-u identificador[-o] [-i]] [-g grupo] [-G grupo[[,grupo] . . .]] [-d catalogar] [-s caparazón] [-C un comentario] [-m [-k skel_dir]] [-f inactivo] [-e expirar] [-pag pasajero] [-a evento[, . . .]] nombre_registro

Descripción detallada

Llamar agregar usuario generalmente agrega una nueva entrada de usuario a los archivos de datos del sistema identificación y verificación de identidad(Identificación y Autenticación - I&A). La excepción son los usuarios. servicio de información de red(Servicio de información de red o NIS para abreviar). También le permite especificar la membresía en grupos adicionales para el usuario (opción -GRAMO) y cree un directorio de inicio para él (opción -metro). El nuevo inicio de sesión se bloquea hasta que se ejecute el comando contraseña.

Inmediatamente después de la instalación, los valores estándar para varios parámetros se indican en el archivo. /etc/default/useradd. Los valores predeterminados para las opciones enumeradas a continuación que requieren valores predeterminados se pueden cambiar usando el comando difamar.

Las entradas de archivos del sistema creadas con este comando tienen un límite de longitud de 512 caracteres por línea. Si se dan argumentos extensos para múltiples opciones, se puede violar esta limitación.

Se admiten las siguientes opciones:

-u identificador Número de identificación de usuario (UID). Este número debe ser un número entero no negativo no mayor que MAXUIDO, definido en sistema/param.h. El valor predeterminado es el siguiente UID no heredado disponible (único) mayor que 99. Esta opción se ignora si el nuevo inicio de sesión será administrado por Network Information Service (NIS). Para obtener más información sobre esto, consulte la sección "Nombres de registro del servicio de información de red" a continuación.
-o Esta opción le permite duplicar el UID (hacerlo no único). Desde la protección del sistema en su conjunto, así como la integridad pista de auditoría(pista de auditoría) y Informacion de cuenta(La información contable) en particular depende de la correspondencia única de cada UID con una persona específica; no se recomienda utilizar esta opción (para garantizar que se contabilicen las acciones del usuario).
-i Permite el uso de un UID heredado.
-g grupo El identificador entero o nombre simbólico de un grupo existente. Esta opción especifica grupo central(grupo principal) para un nuevo usuario. De forma predeterminada, se utiliza el grupo estándar especificado en el archivo. /etc/default/useradd
-G grupo[[,grupo] . . .] Uno o más elementos en una lista separada por comas, cada uno de los cuales representa un identificador entero o un nombre simbólico de un grupo existente. Esta lista define membresía en grupos adicionales(membresía de grupo complementaria) para el usuario. Se ignoran las repeticiones. El número de elementos de la lista no debe exceder NGROUPS_MAX- 1, ya que el número total de grupos adicionales para un usuario más el grupo principal no debe exceder NGROUPS_MAX. Esta opción se ignora si el nuevo inicio de sesión será administrado por el Servicio de información de red (NIS). Consulte "Nombres de registro del servicio de información de red" a continuación.
-d directorio Directorio de inicio(directorio de inicio) del nuevo usuario. La longitud de este campo no debe exceder los 256 caracteres. El valor predeterminado es HOMEDIR/nombre_registro, Dónde DIRINICIO- el directorio base para los directorios iniciales de nuevos usuarios, y nombre_registro- nombre de registro del nuevo usuario.
-s caparazón La ruta completa al programa utilizado como shell inicial para el usuario inmediatamente después del registro. La longitud de este campo no debe exceder los 256 caracteres. Por defecto, este campo está vacío, lo que obliga al sistema a utilizar el intérprete de comandos estándar. /usr/bin/sh. como valor caparazón se debe especificar un archivo ejecutable existente.
-c comentario Cualquier cadena de texto. Normalmente, se trata de una breve descripción del nombre de inicio de sesión y ahora se utiliza para indicar el apellido y el nombre del usuario real. Esta información se almacena en el registro del usuario en un archivo. /etc/contraseña. La longitud de este campo no debe exceder los 128 caracteres.
-metro Crea el directorio de inicio de un nuevo usuario si aún no existe. Si el directorio ya existe, el usuario que se agrega debe tener permiso para acceder al directorio especificado.
-k skel_dir Copia el contenido de un directorio. skel_dir al directorio de inicio del nuevo usuario, en lugar del contenido del directorio estándar "esqueleto", /etc/skel. Catalogar skel_dir debe existir. El directorio estándar "esqueleto" contiene archivos estándar que definen el entorno de trabajo del usuario. Directorio especificado por el administrador skel_dir puede contener archivos y directorios similares creados para un propósito específico.
-f inactivo El número máximo de días permitidos entre usos de un nombre de registro antes de que el nombre ya haya sido declarado inválido. Normalmente los valores son números enteros positivos.
-e expirar La fecha a partir de la cual ya no se puede utilizar el nombre de registro; después de esta fecha ningún usuario podrá acceder con este inicio de sesión. (Esta opción es útil al crear inicios de sesión temporales). Ingrese un valor de argumento expirar(que representa una fecha) puede estar en cualquier formato (excepto la fecha juliana). Por ejemplo, podría ingresar 6/10/99 o 6 de octubre de 1999.
-p contraseña Indica que el campo FLAG en el archivo /etc/sombra debe establecerse en el valor especificado. A este campo se accede mediante el comando contraseña para determinar si el generador de contraseñas es válido para un usuario determinado. si opción -pag no especificado explícitamente, la entrada está marcada PASO_FORCED en archivo /etc/default/useradd para determinar el valor del campo correspondiente en /etc/sombra. si registros PASO_FORCED no en /etc/default/useradd, en el campo correspondiente de la entrada en /etc/sombra No importará. si el valor PASO_FORCED es igual a 1, entrada en /etc/sombra obtiene el valor 1. Si el valor pasajero no está vacío y no es un carácter ASCII imprimible, se emite un mensaje de diagnóstico.
-un evento Lista de tipos o clases de eventos, separados por comas, formando máscara de auditoría(máscara de auditoría) para el usuario. Inmediatamente después de instalar el sistema, no existe una máscara de auditoría estándar para el usuario, pero se puede configurar en el archivo. /etc/default/useradd usando el comando difamar. Esta opción sólo se puede utilizar si están instaladas las Utilidades de auditoría. (Para saber qué paquetes están instalados en el sistema, ejecute el comando paqueteinfo.)
nombre_registro Una cadena imprimible que especifica el nombre de inicio de sesión para el nuevo usuario. No debe contener dos puntos ( : ) y caracteres de avance de línea ( \norte). Tampoco debería empezar con mayúscula.

Tenga en cuenta que muchos de los valores predeterminados para los parámetros discutidos anteriormente se pueden cambiar usando el comando difamar, diseñado para trabajar con un archivo /etc/default/useradd. Estos valores predeterminados se aplican sólo a los usuarios locales. Para los usuarios de NIS, los valores predeterminados se establecen en la base de datos del Network Information Service. Para cambiar los valores predeterminados de NIS, debe especificar opciones en la línea de comando.

Nombres de registro del servicio de información de red

Si el nombre de inicio de sesión comienza con el carácter + , (Por ejemplo, +cris), la definición de usuario será gestionada por el Servicio de información de red (NIS). Los valores predeterminados se determinarán en función de la base de datos NIS en lugar del archivo. /etc/defaults/useradd. Valores de argumentos para opciones. -tú, -gramo Y -GRAMO se ignorará silenciosamente si se especifican estas opciones. En su lugar, los valores de ID de usuario y de ID de grupo se tomarán de la base de datos NIS. Consulte la página de ayuda para obtener más detalles. contraseña. Tenga en cuenta que al agregar un usuario NIS, el inicio de sesión ya debe existir en la base de datos NIS. Por ejemplo, para agregar un nombre de inicio de sesión cris como nombre de usuario NIS, cris ya debe existir en la base de datos NIS. Entonces necesitas llamar agregar usuario con nombre de registro +cris para indicar que es necesario agregar un usuario cris como usuario NIS, no como usuario local.

ARCHIVOS

/etc/default/useradd
/etc/grupo
/etc/contraseña
/etc/security/ia/ageduid
/etc/seguridad/ia/auditoría(si están instaladas las utilidades de auditoría)
/etc/seguridad/ia/index
/etc/seguridad/ia/master
/etc/sombra
/etc/skel

DIAGNÓSTICO

Equipo agregar usuario sale con el código de retorno 0 si tiene éxito. Si se producen errores, pueden aparecer los siguientes mensajes:


Sintaxis de línea de comando no válida.
La sintaxis de la línea de comando no era válida.
Se especificó un argumento no válido en la opción.
Se proporcionó una opción a un argumento no válido.
El identificador especificado en la opción -u ya está en uso, pero la opción -o no está especificada.
El uid especificado con la opción -u ya está en uso y no se especificó la opción -o.
El grupo especificado con la opción -g no existe.
El grupo especificado con la opción -g no existe.
El nombre de inicio de sesión proporcionado no es único.
El inicio de sesión especificado no es único.
No se pudo cambiar /etc/group. El inicio de sesión se agrega al archivo /etc/passwd, pero no al archivo /etc/group.
No se puede actualizar /etc/group. El inicio de sesión se agregó al archivo /etc/passwd pero no al archivo /etc/group.
No se pudo crear el directorio de inicio (con la opción -m) o falló al copiar skel_dir al directorio de inicio.
No se puede crear el directorio de inicio (con la opción -m) o no se puede completar la copia de skel_dir en el directorio de inicio.
El documento de identidad no tiene la edad suficiente. Elige otro.
El líquido no ha envejecido lo suficiente. Elige otro.
Se especificó una opción -a no válida; El servicio del sistema no está instalado.
Se especificó una opción no válida -a; servicio del sistema no instalado.
El tipo o clase de evento de auditoría especificado no es válido.
Se especificó un tipo de evento de auditoría o un evento de clase no válido.

En los sistemas que brindan acceso multiusuario, ya sea un sistema operativo SO, software, sistema de administración de contenidos (CMS), es muy importante contar con herramientas para una gestión confiable de los usuarios (sus cuentas o cuentas, configuraciones de usuarios, directorios personales, etc.). ). ), así como para organizar y gestionar el propio acceso de los usuarios. En tales casos, la gestión competente y cuidadosa de los usuarios (más precisamente, de sus cuentas) es un aspecto clave del que dependen la seguridad, la estabilidad y, como resultado, la fiabilidad de todo el sistema. Las distribuciones modernas de Linux tienen sistemas automatizados de administración de usuarios con una interfaz gráfica de usuario (GUI) clara, que le permite realizar de manera rápida y conveniente actividades rutinarias (como resulta en la realidad) para administrar usuarios y configurar sus cuentas. Sin embargo, es muy importante saber y comprender cómo y qué procesos y cambios reales ocurren en el propio sistema durante la gestión de usuarios.

Agregar usuarios en Linux

Para agregar un nuevo usuario llamado John al sistema, simplemente ejecute el comando:

$sudo usuarioañadir john

Esto creará la siguiente entrada en el archivo /etc/passwd:

Juan:x:535:20: :/home/john:/bin/sh

Sin embargo, el equipo agregar usuario tiene posibilidades mucho mayores, por ejemplo:

$ sudo useradd -c "John Silver" -d /home/piratas/john -g piratas -G john -m -s /bin/bash john

Este comando agregará un usuario con el nombre completo "John Silver" y el nombre de inicio de sesión "john" al sistema. Incluirlo en el grupo principal "piratas" también lo agregará a otro grupo adicional "john" y le asignará un directorio de inicio en /home/pirates/john. Como resultado, la entrada correspondiente en el archivo /etc/passwd será algo como esto:

John:x:535:30:John Silver:/home/piratas/john:/bin/bash

Equipo agregar usuario crea automáticamente el directorio de inicio del usuario si aún no se ha creado. A también copia archivos de /etc/skel/ en él.

Lista completa de parámetros agregar usuario

Uso: useradd [opciones] USUARIO
agregar usuario -D
agregar usuario -D [opciones]

Opciones:
-b, --base-dir Directorio base BAZ_KAT para el directorio de inicio del nuevo
cuenta
-C, --comment campo COMENTARIO GECOS de la nueva cuenta
-d, --home-dir DOM_KAT directorio de inicio de la nueva cuenta
-D, --defaults muestra o cambia la configuración
predeterminado para agregar usuario
-mi, --expiredate DATE_STATE la fecha de vencimiento de la nueva cuenta
-F, —inactivo INACTIVIDAD período de inactividad de la nueva contraseña de la cuenta
-gramo, --gid Nombre del GRUPO o ID del grupo principal del nuevo
cuenta
-GRAMO, --groups GROUPS lista de grupos adicionales del nuevo
cuenta
-k, --skel CAB_SHAB usa un directorio alternativo con plantillas
-k, --key KEY=VALUE reemplaza el valor predeterminado
desde /etc/login.defs
-l, --no-log-init no agrega el usuario a las bases de datos del último registro y
registro de fallas
-metro, --create-home crea el directorio de inicio del usuario
-METRO, --no-create-home no crea el directorio de inicio del usuario
-NORTE, --no-user-group no crea un grupo con el mismo nombre que
usuario
-o, --non-unique permite la creación de usuarios con
UID repetidos (no únicos)
-pag, --password PASSWORD contraseña cifrada para la nueva cuenta
-r, --system crea una cuenta del sistema
-R
-s, --shell SHELL shell de registro del nuevo
cuenta
-tú, --uid UID ID de usuario de la nueva cuenta
-U, --user-group crea un grupo con el mismo nombre que
usuario
-Z, --selinux-user SEUSER utiliza el SEUSER especificado para
Mapeo personalizado de SELinux

Crear y asignar un directorio de inicio a un usuario

Normalmente, un directorio de inicio se crea automáticamente cuando se agrega un usuario al sistema. Pero hay ocasiones en las que, por algún motivo, no se crea el directorio de inicio. Y luego es necesario crearlo. Para crear el directorio de inicio de un usuario, utilice el comando estándar mkdir. Después de esto, debe copiar los scripts de configuración necesarios al directorio de inicio (para organizar el entorno de trabajo del usuario) y luego, usando los comandos chown y chmod, configurar el propietario y los modos de acceso al directorio y su contenido. Es mejor hacerlo después de que todos los archivos de configuración se hayan copiado en el directorio de destino. Por ejemplo:

$ mkdir /home/john/ $ cd /etc/skel/ $ cp -Rp . /home/john/ $ chown -R john:john /home/john/ $ chmod -R 644 /home/john/ $ buscar /home/john/ -type d -exec chmod 755 () \;

Como puede ver, los archivos de configuración se copiaron del directorio /etc/skel/; aquí es donde se almacenan ejemplos de configuraciones de inicio, que se pueden editar según sea necesario. Por cierto, una copia modificada de los archivos del directorio /etc/skel/ debe almacenarse en el directorio usr/local/etc/skel. Al configurar el propietario del directorio de inicio, se debe tener cuidado para garantizar que (en caso de uso descuidado del comando chown) el usuario no se convierta en el propietario del pseudodirectorio "..", es decir, el nivel de directorio superior, que suele ser el directorio /home, que por razones de seguridad es inaceptable.

Crear una contraseña para un usuario

Por motivos de seguridad, su cuenta debe tener una contraseña segura. Que debe configurarse inmediatamente después de crear una cuenta de usuario:

$ sudo contraseña nombre_del_nuevo_usuario

Por ejemplo, para el usuario jon:

$ sudo passwd john Nueva contraseña: Vuelva a ingresar la nueva contraseña: passwd: Todos los datos de autenticación se han actualizado correctamente.

Verificación de la cuenta

Antes de transferir los detalles y la contraseña inicial para iniciar sesión en su cuenta a un nuevo usuario, debe verificarlos. Para hacer esto, debe finalizar la sesión actual. E inicie sesión con el nombre del nuevo usuario (cuya cuenta debe verificarse). Y ejecute los siguientes comandos secuencialmente:

$ contraseña $ ls -al

El primero mostrará el directorio de inicio del usuario actual, el segundo mostrará una lista de todos los archivos y subdirectorios (incluidos los ocultos) en el directorio de inicio, indicando su propietario y modos de acceso.

Administración de cuentas

Como se señaló anteriormente, para administrar usuarios en sistemas Linux, existen conjuntos de utilidades especializadas para agregar, editar y eliminar cuentas (usuarios): usuarioadd, usermod y userdel. Siguen un orden prescrito de acciones para lograr un objetivo final; por ejemplo, en el caso de agregar un nuevo usuario, el comando agregar usuario produce, en consecuencia, todo el “conjunto de actividades” descrito anteriormente. Cada una de estas utilidades se puede configurar de manera flexible mediante archivos de configuración, que, por cierto, los desarrolladores de distribuciones de Linux utilizan de manera muy activa. Después de todo, en diferentes sistemas Linux el funcionamiento de estas utilidades difiere ligeramente, aunque las utilidades son esencialmente idénticas. A continuación se muestra una tabla que muestra los comandos y archivos de configuración para administrar usuarios para algunos sistemas usando la utilidad como ejemplo. agregar usuario:

Sistema equipos Archivos de configuración Un comentario
ubuntu agregar usuario /etc/login.defs
agregar usuario /etc/default/useradd versión Perl
/etc/adduser.conf
SUSE agregar usuario /etc/login.defs
/etc/default/useradd
/etc/default/contraseña
/usr/sbin/useradd.local Configuraciones locales
/usr/sbin/userdel.local Configuraciones locales
/usr/sbin/userdel-pre.local Configuraciones locales
/usr/sbin/userdel-post.local Configuraciones locales
sombrero rojo agregar usuario /etc/login.defs
/etc/default/useradd
Solaris agregar usuario /etc/default/(iniciar sesión,contraseña)
/etc/security/policy.conf

Eliminando usuarios

Para eliminar usuarios del sistema, use el comando userdel, por ejemplo el comando

usuariodel john

Eliminará al usuario john, pero a menudo (como el comando agregar usuario, por cierto) no en forma "pura", sino en forma de shells Perl utilizando un script de eliminación de cuenta. Por ejemplo, las distribuciones de Ubuntu utilizan el comando deluser, que es un script Perl común. Lo que, a su vez, llama al comando userdel para eliminar y limpiar todo lo que el comando hizo anteriormente. agregar usuario. En este caso, se utiliza un archivo de script (normalmente el archivo /etc/deluser.conf en Ubuntu y /etc/login.defs en RedHat). Lo que le permite configurar las siguientes opciones para el comando userdel:

Uso: userdel [opciones] USUARIO

Opciones:
-F, --force forzar la eliminación de usuarios y archivos, incluso si están actualmente en uso
-r, --remove elimina el directorio de inicio y el buzón de correo
-R, --root directorio CAT_CHROOT al que hacer chroot
-Z, --selinux-user elimina todas las asignaciones de usuarios
SELinux para usuario

Archivo /etc/passwd – descripción de cuentas locales

Si el sistema no utiliza ningún servicio automatizado de administración de directorios (por ejemplo, LDAP, NIS), entonces el archivo /etc/passwd es el archivo que almacena información sobre las cuentas de usuario conocidas por el sistema. El sistema accede a este archivo cada vez que un usuario intenta autenticarse, busca la ID de usuario requerida y determina su directorio de inicio. El formato de este archivo es que cada línea corresponde a un usuario (cuenta) específico, que (en una línea) enumera los atributos (campos) de la cuenta, separados por dos puntos:

  1. Nombre de usuario.
  2. Contraseña de usuario (cifrada) o contraseña “marcador de posición”.
  3. Identificación de usuario.
  4. ID de grupo de usuarios (predeterminado).
  5. Información de GECOS: nombre completo, oficina, números de teléfono, etc.
  6. Directorio de inicio.
  7. Shell de registro.

El contenido del archivo /etc/passwd podría verse así: Como puede ver, el segundo campo para todas las entradas contiene una "x", un marcador de posición de contraseña. En los sistemas Linux, las contraseñas cifradas se almacenan por separado en el archivo /etc/shadow. Si el servicio de administración automatizada de directorios se utiliza junto con el archivo /etc/passwd, entonces el mismo archivo contiene entradas que comienzan con el carácter “+”. Estas entradas proporcionan instrucciones para integrar los servicios de administración de directorios en el sistema. Vale la pena echar un vistazo rápido a los campos de la cuenta:

  • Nombre de usuario o nombre de inicio de sesión- un nombre único que debe compilarse de acuerdo con las reglas para construir nombres de registro para un sistema en particular. Para Linux, el nombre de inicio de sesión puede tener hasta 32 caracteres. Sólo se pueden utilizar letras minúsculas y números. El nombre del registro debe comenzar con una letra.
  • Contraseña cifrada- como ya se señaló, las contraseñas de las cuentas locales se almacenan en /etc/shadow en forma cifrada. En Linux, los algoritmos crypt, MD5 y Blowfish se utilizan como herramientas criptográficas para cifrar contraseñas. La longitud mínima de la contraseña es de 5 caracteres, la máxima es de 8
  • ID de usuario es un número entero sin signo mediante el cual el sistema "reconoce" a los usuarios individuales, por lo que el sistema y el entorno de software utilizan los identificadores de usuario, mientras que los nombres de usuario se utilizan para mayor claridad y facilidad de presentación de los usuarios en el sistema. El número de ID 0 está reservado para el usuario root, y también se recomienda asignar ID después de 500 a usuarios reales, ya que puede haber muchos usuarios "no identificados" en el sistema, como bin o daemon; esto mantendrá la lista de usuarios en orden y evitar confusiones. Los sistemas Linux también proporcionan un pseudousuario don nadie, con un identificador de -1 o -2. Normalmente, este pseudousuario se utiliza cuando el superusuario del sistema intenta acceder a archivos montados desde otra computadora que no confía en la computadora original.
  • Identificación del grupo- un número entero sin signo, similar a un identificador de usuario, destinado a designar grupos de usuarios únicos en el sistema. El grupo número 0 está reservado para el grupo raíz. Los grupos se utilizan principalmente para gestionar y compartir archivos cómodamente. Al igual que con los ID de usuario, el sistema reserva grupos (como bin) para que los utilice el propio sistema.
  • CampoGECOS– información que no tiene una especificación claramente definida, refleja datos adicionales sobre el usuario: su nombre completo, números de teléfono, información sobre el puesto y departamento, etc. La información en este campo se puede cambiar usando el comando chfn.
  • Directorio de inicio- un "lugar" en el árbol del sistema de archivos que está reservado para almacenar datos de un usuario específico. Por razones de seguridad, este directorio solo debe ser accesible para el usuario propietario de este directorio. Si no hay un directorio de inicio en el momento del registro, los datos del usuario se colocan en el directorio /. Además, si la opción DEFAULT_HOME en el archivo /etc/login.defs, que especifica el directorio de inicio predeterminado, está configurada en no, entonces la autorización/registro del usuario será imposible.
  • Shell de registro- un shell de comandos para un intérprete de comandos (o cualquier otro programa), que se inicia cuando el usuario inicia sesión en su cuenta. Para Linux, se utiliza un intérprete.

Archivo /etc/group – crear y eliminar grupos de usuarios

Agregar un nuevo grupo en Linux se realiza usando el comando

$groupadd nombre_grupo

donde nombre_grupo es el nombre del nuevo grupo. Este comando creará una nueva entrada en el archivo /etc/group

El formato de este archivo es el mismo que /etc/passwd. Ejemplo del contenido del archivo /etc/group:
Como puede ver, cada línea incluye cuatro campos:

  1. Nombre del grupo.
  2. Contraseña cifrada o marcador de posición de contraseña.
  3. Identificador de grupo único.
  4. Una lista de usuarios incluidos en este grupo, que contiene nombres de usuario separados por comas sin espacios.

Lo interesante aquí es el campo de contraseña. El propósito de la contraseña del grupo es permitir que los usuarios se unan al grupo usando el comando newgrp. La contraseña para el grupo en sí se establece mediante el comando gpasswd, después de lo cual se almacenará en forma cifrada en el archivo /etc/gshadow. Sin embargo, cabe señalar que las contraseñas para grupos se utilizan muy raramente. Los administradores del sistema deben monitorear el contenido de los archivos /etc/passwd y /etc/group y coordinarlos entre sí, ya que a veces surgen situaciones cuando un usuario se especifica como miembro de un grupo en el archivo /etc/passwd y en el mismo tiempo en el archivo /etc/group del mismo usuario, sin anuncio. Cabe señalar que en este caso el usuario será considerado miembro del grupo, pero aun así se recomienda encarecidamente que el contenido de ambos archivos sea coherente.

De forma predeterminada en las distribuciones de Linux (excepto SUSE), al crear un usuario (la utilidad agregar usuario) se crea su grupo del mismo nombre, en el que se incluye inmediatamente. Esto se proporciona para eliminar en la medida de lo posible la posibilidad de que diferentes usuarios accedan a los archivos de los demás.

Puede eliminar un grupo de usuarios usando el comando

$groupdel nombre_grupo

Este comando eliminará la entrada de /etc/group.

Archivo /etc/shadow – almacenar contraseñas

Se utiliza un archivo /etc/shadow independiente para almacenar contraseñas ocultas o ocultas. Acceso al cual sólo está disponible para el superusuario. También cabe destacar que los archivos /etc/shadow y /etc/passwd están relacionados conceptualmente, pero a nivel de sistema prácticamente no existe interacción entre ellos. Excepto que el campo que contiene el nombre de inicio de sesión en la sombra se toma de passwd. Aquellos. Al modificar la sombra, los cambios no se reflejan automáticamente en passwd: estos archivos se almacenan por separado y el sistema los procesa de forma independiente. El formato de /etc/shadow es similar a /etc/passwd y cada línea incluye los siguientes campos:

  1. Nombre de registro.
  2. La contraseña está cifrada.
  3. Fecha en que se cambió la contraseña por última vez.
  4. Número mínimo de días entre cambios de contraseña.
  5. Número máximo de días entre cambios de contraseña.
  6. El número de días antes de que se emita el mensaje de caducidad de la contraseña.
  7. El número de días (después de la expiración de la contraseña) hasta que la cuenta se cancele automáticamente.
  8. Período de validez de la cuenta.
  9. Campo reservado.

La entrada del archivo /etc/shadow tiene este aspecto:

Juan:$md5$em5JhGE$a$iQhgS70sakdRaRFyy7Ppj. :14469:0:180:14: : :


Cabe señalar que los dos primeros campos son obligatorios. El formato de los campos de fecha corresponde al número de días transcurridos desde el 1 de enero de 1970. El campo del nombre de registro, como ya se indicó, se completa con el valor correspondiente del archivo /etc/passwd. En Linux, el séptimo campo contiene un valor que determina cuánto tiempo (en días) después de que caduque la contraseña, la cuenta se desactivará automáticamente. Esta interpretación es diferente de la utilizada en los sistemas Solaris y HP-UX. En el octavo campo, puede utilizar el comando usermod en formato aaaa-mm-hh para establecer la fecha de vencimiento de la cuenta.

Si encuentra un error, resalte un fragmento de texto y haga clic en Ctrl+Entrar.




Arriba