GNU/Linux >> Tutoriales Linux >  >> Linux

Los efectos de agregar usuarios a un sistema Linux

Este artículo cubre mi viaje de aprendizaje sobre la arquitectura del sistema de archivos de Linux y el uso de mi conocimiento para escribir un script de shell para crear usuarios de Linux. En mi segundo año de universidad, aprendí sobre el sistema de archivos de Linux cuando me vino a la mente el concepto de usuarios. Traté de crear usuarios en sistemas operativos basados ​​en Linux.

El script está diseñado para los sistemas operativos basados ​​en Red Hat y también se puede usar para otras distribuciones de Linux con algunas ligeras modificaciones. Tenga en cuenta que usa ksh .

[ También te puede interesar: Conceptos básicos de administrador de sistemas de Linux:administración de cuentas de usuario]

El foco está en los archivos ubicados en /etc directorio, que almacena la información de configuración del sistema. Muestro cómo trabajar con archivos del sistema y crear un nuevo usuario. El acceso raíz es un requisito.

Estos son los archivos que se modifican al crear un nuevo usuario en Linux:

  1. /etc/contraseña
  2. /etc/sombra
  3. /etc/grupo
  4. /etc/gshadow
  5. /inicio/USUARIO
  6. /var/spool/mail/USUARIO

El sistema agrega seguridad al directorio de inicio y al buzón del usuario (USUARIO) al establecer la propiedad para el usuario y el grupo del usuario.

/etc/contraseña

Este archivo almacena información sobre el usuario, como el nombre de usuario, ID de usuario, ID de grupo, nombre completo (comentario) y shell. Los datos se almacenan en el siguiente formato: Nombre de usuario:Enlace:ID de usuario:ID de grupo:Comentario:Directorio principal:Shell

Cada línea del archivo contiene la siguiente información sobre los usuarios:

  • Nombre de usuario:indica el nombre de usuario proporcionado al usuario para facilitar el acceso.
  • Enlace:representa que la contraseña del usuario está almacenada en el /etc/shadow expediente. Si x se elimina, la contraseña no se comprobará y el usuario no podrá iniciar sesión.
  • ID de usuario:comúnmente conocido como UID y utilizado para representar de forma única a un usuario. Va de 0 a 65.535.
    • UID =0 -> cuenta de usuario raíz
    • UID =1000 a 60 000 -> Cuentas no raíz/generales
    • UID =1 a 999 y 60 001 a 65 535 -> Usuarios del sistema
  • GroupID:Igual que UserID pero se usa para representar un grupo de forma única.
  • Comentario:información adicional sobre el usuario. Normalmente, el nombre completo del usuario.
  • HomeDirectory:ubicación del directorio de inicio del usuario.
  • Shell:shell predeterminado del usuario.

/etc/sombra

Este archivo almacena la información sobre la contraseña del usuario y contiene la contraseña en forma cifrada.

Los datos se almacenan en el siguiente formato:

UserName:EncryptedPassword:LastPasswordChange:MinPwdAge:MaxPwdAge:WarningPeriod:InactivePeriod:ExpirationDate:Unused

  • Nombre de usuario:indica el nombre de usuario proporcionado al usuario.
  • Contraseña cifrada:la contraseña se cifra mediante algoritmos hash como sha256, sha512, md5, etc., y se almacena en el archivo.
  • Último cambio de contraseña:almacena la fecha de época desde que se cambió la contraseña por última vez.
  • Antigüedad mínima de la contraseña:almacena el número de días hasta el próximo cambio de contraseña.
    • Por defecto, 0 -> Sin edad mínima
  • Edad máxima de la contraseña:almacena el número máximo de días después de los cuales el usuario tiene que cambiar la contraseña.
    • Por defecto, 99.999 -> Sin edad máxima
  • Período de advertencia:número de días después de los cuales se muestra la advertencia para cambiar la contraseña.
    • Por defecto, NULL
  • Período de inactividad:especifica el número de días después de que caduque la contraseña del usuario antes de que la cuenta se deshabilite.
  • Fecha de vencimiento:fecha de época hasta que se deshabilita la cuenta.
  • Sin usar:Reservado para uso futuro.

Otros archivos

  • /etc/group y /etc/gshadow Los archivos son para grupos en Linux y almacenan los datos en el formato GroupName:Link:GroupID:MemberList y Nombre de grupo:Contraseña:Reservado:Lista de miembros respectivamente.
  • El directorio de inicio del usuario debe crearse en /home directorio con los datos del /etc/skel carpeta.
  • Buzón creado en /var/spool/mail directorio.

El guión

El siguiente es el script de shell que escribí para crear nuevos usuarios dividido en partes:

uname=$1
 
id -u $uname&>/dev/null

Primero, comprueba si el usuario ya existe:

if [ $? -ne 0 ]
then
for i in {1000..60000}
do 
id -u $i&>/dev/null & id -g $i&>/dev/null
if [ $? -ne 0 ]
then
break
fi
done
uid=$i
echo "$uname:x:$uid:$uid::/home/$uname:/bin/bash">>/etc/passwd
lastpwdchange=$(datediff 1970-01-01 `date +"%Y-%m-%d"`)
echo "$uname::$lastpwdchange:0:99999:7:::">>/etc/shadow
echo "$uname:x:$uid:">>/etc/group
echo "$uname:!::">>/etc/gshadow
mkdir /home/$uname
cp -a /etc/skel/. /home/$uname/
chown $uname:$uname /home/$uname/ -R
chmod 0700 /home/$uname/ -R
touch /var/spool/mail/$uname
chown $uname:$uname /var/spool/mail/$uname
 
echo "User successfully created"
else
echo "User already exists : try using a unique username">&2
fi

Si el usuario ya existe, salga del programa o cree el usuario.

El código completo está disponible públicamente en GitHub.

Ejecute el script de shell

[ Nota del editor:si bien esta secuencia de comandos puede parecer bastante sencilla, siempre asegúrese de comprender y confiar en las secuencias de comandos que encuentre antes de instalarlas o escalar sus permisos en su sistema. ]

1) Coloque el script de shell en el directorio /usr/bin/ para hacerlo accesible como un comando.

2) Agregar permiso de ejecución para el usuario root:

# chmod u+x /usr/bin/ksh_useradd

3) Ejecute el comando con el nombre de usuario como argumento:

ksh_useradd USERNAME

4) El script crea la cuenta de usuario. Debe establecer una contraseña para el nuevo usuario antes de iniciar sesión por primera vez.

[ Curso gratuito en línea:Descripción general técnica de Red Hat Enterprise Linux. ] 

Resumir

Este script puede hacer que el proceso de creación de usuarios sea un poco más fácil que recordar cambios para el useradd dominio. Claro, puedes usar el useradd comando para crear usuarios, establecer permisos y crear el buzón del usuario, pero este script realiza las mismas acciones que useradd y lo ayuda a aprender lo que sucede detrás de escena con su sistema de archivos. Espero que las explicaciones anteriores le ayuden a comprender un poco más claramente los archivos de configuración relacionados con la creación de usuarios y sus campos.


Linux
  1. Cómo crear varias cuentas de usuario en Linux

  2. Administrar usuarios de Linux y grupos de Linux

  3. Cómo cambiar la identidad de un sistema Linux

  4. Lista de usuarios en Linux:el mejor método

  5. ¿Por qué el usuario más poderoso en un sistema Unix/Linux se llama “root”?

Cómo limitar el acceso del usuario al sistema Linux

El comando superior de Linux

Cómo usar el comando fd en el sistema Linux

Cómo saber los grupos de un usuario de Linux

Agregar nuevos usuarios en Linux con el comando Useradd

La guía definitiva para crear usuarios en Linux/Unix