Gestión de Usuarios y Permisos en Linux

Administración de Usuarios en Linux

Linux es un Sistema Operativo multiusuario.

Además, maneja grupos de usuario para implementar la seguridad del sistema de una forma ordenada.

Los usuarios en Unix/Linux se identifican por un número único, User ID, UID.

Pertenecen a un grupo principal, identificado también por un número único, Group ID, GID.

El usuario puede pertenecer a más grupos además del principal.

Usuario root (Superusuario o administrador)

  • Su UID es 0 (cero).
  • Es el único usuario con privilegios sobre todo el sistema.
  • Acceso total a todos los archivos y directorios con independencia de propietarios y permisos.
  • Administra las cuentas de usuarios (los usuarios).
  • Ejecuta tareas de mantenimiento del sistema.
  • Puede detener el sistema.
  • Instala software en el sistema.
  • Puede modificar o reconfigurar el kernel, controladores, etc.

Usuarios especiales (Usuarios del Sistema)

  • bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc.
  • No tiene todos los privilegios del usuario root, pero dependiendo del “usuario”, asumen distintos privilegios de root.
  • Para proteger al sistema de posibles formas de vulnerar la seguridad.

Usuarios especiales (Usuarios del Sistema)

  • No tienen contraseñas pues son “usuarios” que no están diseñados para iniciar sesiones.
  • También se les conoce como “usuarios” de «no inicio de sesión» (nologin).
  • Se crean automáticamente al momento de la instalación de Linux o de la aplicación.
  • Generalmente se les asigna un UID entre 1 y 100 (definido en /etc/login.defs)

Usuarios normales

  • Se utilizan para usuarios comunes.
  • Cada usuario tiene un directorio de trabajo, ubicado generalmente dentro de /home.
  • Cada usuario puede personalizar su entorno de trabajo.
  • Tienen solo privilegios completos en su directorio de trabajo o HOME.
  • Su UID es superior a 500.

Comandos para la administración de usuarios

Los comandos dependen de la distribución de Linux:

  • useradd –» agrega -» adduser
  • usermod –» modifica -» moduser
  • userdel –» elimina -» deluser

useradd nombre_usuario

  • Agrega un usuario al sistema.
  • Agrega una entrada en el archivo /etc/passwd, donde se encuentran todos los usuarios del sistema.

useradd mengano

  • Agrega a “mengano” al sistema.


passwd mengano

Changing password for user mengano.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

  • Establece la contraseña del usuario mengano

Formato del archivo /etc/passwd

jperez:x:1000:100:Juan Perez:/home/jperez:/bin/bash

  1. Nombre usuario
  2. Contraseña oculta, (* no puede hacer login, vacio no requiere password)
  3. UID (id usuario)
  4. GID (id grupo)
  5. Se usa para información personal (nombre, root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: teléfono, oficina, etc.)
  • Puede estar vacío
  • El comando finger interpreta el campo como nombre, oficina, etc.
  • El comando chfn permite modificarlo
  1. Directorio de trabajo, / (raíz) si no hay ninguno
  2. Intérprete de comandos
  • El shell usado por defecto cuando se hace login
  • sh, csh, ksh, bash, tcsh
  • chsh permite cambiar de shell

useradd [parametros] nombre_usuario

-d
  • Directorio de trabajo
  • generalmente /home/nombre_usuario
  • directorio activo al terminar el login
-g
  • GID del grupo primario al que pertenece el usuario
-G
  • GID del o los grupos secundarios al que pertenece el usuario.
-c
  • Comentario
  • Generalmente el nombre completo del usuario.
-s
  • shell, intérprete de comandos
-m
  • crea el directorio del parámetro – d
-k
  • copia los archivos de inicialización para el nuevo usuario de /etc/skel


Ejemplo:

useradd – d /home/fDetal

– g 101

– G 100,0,155

– s /bin/bash

– c “Fulano de Tal”

– mk fDetal

usermod [parametros] nombre_usuario

  • Se pueden modificar los siguientes parámetros:
-d
» directorio de trabajo
-g
» GID del usuario
-G
» grupos secundarios
-s
» shell por defecto
-c
» comentarios
-l
» login o nombre del usuario
-u
» el UID del usuario.
-L
:bloquea la cuenta del usuario, no permite que ingrese al sistema.
-U
:desbloquea una cuenta previamente bloqueada
  • Cambiar el nombre de usuario de “fDtal” a “fulano”: usermod - l fulano fDtal
  • Cambiar el nombre del directorio HOME: usermod - d /home/fulano fulano
  • Otros cambios: usermod - c “Fulano Mengano de Tal" - s /bin/ksh - g 505 fulano
  • Fulano salió de vacaciones usermod - L fulano

userdel [ [ r f ] ] nombre_usuario

  • Elimina la entrada del nombre_usuario en el archivo /etc/passwd
  • El parámetro – r implica que se borraran todos los archivos que pertenezcan al nombre_usuario
  • El parámetro – f igual que – r pero también lo elimina si el usuario está logueado

groupadd [ parametros.] nombre_grupo

  • Agrega una entrada en el archivo /etc/group de nombre_grupo
-g
  • GID, ID del grupo
  • Permite indicar el ID del grupo nuevo
  • Ejemplo: groupadd “3IX”

groupmod [ parametros.] nombre_grupo

-g
  • GID, ID del grupo
  • Permite modificar el ID del grupo
-n
  • Permite cambiar el nombre del grupo

groupdel nombre_grupo

  • Elimina la entrada en el archivo /etc/group

Formato del archivo /etc/group

usuarios::100:jperez,mmendez,gmartin

  1. Nombre grupo
  2. Id grupo
  3. Listado de usuarios del grupo

/etc/shadow

  • Almacena las contraseñas encriptadas para cada usuario del sistema
  • Solo puede ser leído por root

root:y675hffuXLc12r5Tw78usu6R:14568:0:99999:7:7:-1::

  1. Nombre usuario
  2. Contraseña incriptada
  3. dias transcurridos desde 1 / 1 /1970 hasta la fecha en que la contraseña fue cambiada por última vez.
  4. Cantidad de días que deben transcurrir hasta poder cambiar la contraseña
  5. Cantidad de días en la que expira la contraseña (-1 dura para siempre)
  6. Número de días antes de la expiración de la contraseña en que se le avisará al usuario al inicio de la sesión.
  7. Días después de la expiración en que la contraseña se inhabilitara, si es que no se cambio.
  8. Fecha de caducidad de la cuenta. Días transcurridos desde el 1/1/1970
  9. Reservado

Estructura de directorios básica en GNU/Linux

Directorio raíz /

  • En lugar del carácter \ (S. O. MS/Windows)
  • Es el comienzo del árbol de directorios
  • Contiene a todos los directorios
  • En GNU/Linux existe un único árbol ya que no existe el concepto de unidades manejado por los S. O. MS/Windows
  • /bin
    • programas ejecutables (también llamados binarios)
    • forman parte del sistema operativo GNU/Linux
    • estos comandos pueden ser ejecutados por cualquier usuario y son utilizados desde el shell.
  • /boot
    • Información necesaria para poder iniciar el Sistema Operativo GNU/Linux.
    • Entre otros archivos, aquí se encuentran los núcleos que se pueden iniciar (con un nombre similar a vmlinuz-x.y.z).
  • /dev
    • Su nombre proviene de devices (dispositivos)
    • Archivos que permiten la comunicación con los distintos elementos hardware que esten instalados en el sistema operativo.
    • discos duros (/dev/hda o /dev/sda)
    • particiones de los discos duros (/dev/hda1 o /dev/sda4)
    • CD-ROM SCSI (/dev/scd0)
    • CD-ROM (/dev/cdrom)
    • disqueteras (/dev/fd0)
    • impresoras (/dev/lp0)
    • puertos seriales (/dev/ttyS0 o /dev/cua0)
    • puerto PS/2 (/dev/psaux)
    • tarjetas de sonido (/dev/audio).
  • /etc
    • contiene todos los archivos de configuración del sistema operativo GNU/Linux
    • Ejemplos
    • passwd
      • Información sobre los usuarios
    • shadow
      • contraseñas
    • fstab
      • contiene una lista con los puntos donde se han montado las diferentes particiones y los sistemas de archivos que utilizan cada uno.
  • /home
    • directorios personales de los distintos usuarios del sistema, excepto el del usuario “root”.
    • Este directorio es equivalente al directorio “Mis Documentos” de MS/Windows.
  • /lib
    • librerías (bibliotecas) del sistema operativo y de los programas en general.
    • Estas librerías son análogas a los archivos “DLL” de MS/Windows.
    • Su ventaja consiste en que no es necesario integrar su código en los programas que las utilizan, ya que cuando un programa necesita alguna de sus funciones, se carga la librería en la memoria y puede ser utilizada por cualquier programa que la necesite.
  • /mnt
    • Este directorio es típico de las distribuciones RedHat, aunque puede no estar en otras distribuciones.
    • Agrupar en un mismo lugar los puntos de “montaje” de diversas particiones externas
    • ejemplo:
    • CD-ROMs -» /mnt/cdrom
    • Disquetes -» /mnt/floppy
    • unidades ZIP -» /mnt/zip
    • particiones de MS-Windows -» /mnt/win_c
  • /proc
    • archivos del sistema de archivos de proceso.
    • No son verdaderos archivos, sino una forma de acceder a las propiedades de los distintos procesos que se están ejecutando en nuestro sistema.
    • Para cada proceso existe un subdirectorio /proc/ con información sobre él mismo.
  • /opt
    • paquetes de software adicionales
    • Algunas distribuciones no la utilizan.
    • por ejemplo
    • Informix
      • Sistema gestor de bases de datos utilizado en tercer año.
  • /root
    • directorio personal del usuario “root” o administrador.
    • misma información que los directorios personales de los distintos usuarios del sistema, pero única y exclusivamente para el usuario root.
  • /sbin
    • programas ejecutables (también llamados binarios)
    • comandos para los sistemas de archivos, particiones e inicio del sistema
    • solo pueden ser usados por el administrador (usuario “root”).
  • /tmp
    • archivos temporales que son utilizados por distintos programas del sistema operativo.
  • /usr
    • Su nombre proviene de user (usuario)
    • Contiene una copia de otros directorios del sistema operativo GNU/Linux orientada al usuario en lugar de al propio sistema.
    • Su contenido es estático
  • /var
    • Su nombre proviene de variable
    • La información que contienen sus subdirectorios y archivos son variables
    • Por ejemplo:
    • colas de impresión
      • /var/spool/lpd
    • correo electrónico sin entregar
      • /var/spool/mail
    • correo electrónico sin enviar
      • /var/spool/mqueue
    • registro (logs) creados por los distintos procesos del sistema operativo
      • /var/log.
  • Otros directorios
    • Algunas distribuciones utilizan otros directorios adicionales que se suelen montar en el directorio raíz:
    • /media
      • Es un directorio análogo al estándar /mnt.
    • /windows
      • En algunas distribuciones se crea si detecta un sistema MS/Windows instalado en el PC
      • Para cada partición de MS/Windows se crea un subdirectorio:
      • /windows/C
      • /windows/D
    • /srv
      • directorios que utilizan los distintos servidores que tengamos instalados, como el servidor web (en /srv/www) o el servidor FTP (en /srv/ftp).
  • En Linux los nombres de archivo no deben contener ninguno de los siguientes caracteres especiales ni espacios:
    • ! @ # $ % & * ( ) [ ] ` “ \ / | ; <> : ,
  • Linux permite hasta 256 caracteres para un nombre de archivo
  • Los archivo se ubican dentro de un directorio
  • Para saber el directorio actual
    • pwd ( print working directory )
  • Existen cuatro tipos básicos de archivos:
  • Archivos normales
  • Directorios
  • Enlaces
  • Archivos especiales
  • Con el siguiente comando podemos determinar el tipo de archivo:
    • file
  • Archivos normales:
  • Estos archivos pueden contener texto, código fuente en lenguaje C, órdenes de shell, programas binarios ejecutables y datos de naturaleza diversa.
  • Un archivo normal se convierte en ejecutable cuando se le asigna el permiso X con el comando:
    • chmod +x
  • Archivos de directorio:
  • Los directorios son archivos que contienen los nombres de archivos y directorios
  • También los punteros hacia esos archivos y subdirectorios (i-nodos)
  • Cuando se lista el contenido de un directorio con la orden “ls” lo que se hace en realidad es listar el contenido del archivo de directorio.
  • Enlaces:
  • Normalmente no son archivos, sino simplemente entradas de directorio que señalan al mismo i-nodo
  • existe un tipo de enlace especial conocido como enlace simbólico
  • con los enlaces simbólicos, cuando se suprime el archivo original, también se suprimen todos los enlaces simbólicos a ese archivo


  • Archivos especiales:
  • Linux representa todo a través de archivos (discos, terminales, impresoras, etc.)
  • Las terminales e impresoras se denominan dispositivos especiales por caracteres ya que pueden aceptar o producir una cadena de caracteres
  • los discos duros se les denominan dispositivos especiales por bloques, existe un archivo de dispositivo especial muy útil: /dev/null , todo lo que se envíe a /dev/null se ignora.
  • Los atributos de los archivos implican quién puede leer, escribir o ejecutar un archivo, pero también definen el tipo de archivo y la forma de ejecutarlo.
  • Para mostrar los atributos de un archivo se emplea el comando:
    • ls -l
  • Esta orden muestra prácticamente todo lo que se puede saber acerca del archivo, desde la entrada del directorio y el i-nodo correspondientes.

-rw-r--r-- !1! root ! root ! 1144 ! Apr 18 00:24 ! passwd

  1. permisos
  2. enlaces
  3. propietario
  4. grupo
  5. fecha y hora
  6. nombre del archivo
  • La columna de pemisos se divide en cuatro subcampos :
    • -! r w x ! r w x ! r w x
  • tipo de archivos
  • permisos propietario
  • permisos grupo
  • permisos para todos


Tipo de archivo :
Caracter Descripción
– Archivo normal
b Archivo especial por bloques
c Archivo especial por caracteres
d Directorio
l Enlace

  • Los identificadores de grupo y usuario se refieren a quienes tienen permiso para utilizar, leer o ejecutar un archivo.
  • Esos permisos iniciales de archivo los otorga el administrador del sistema cuando se crea la cuenta del usuario.
  • Sólo los usuarios de un grupo determinado pueden acceder a los archivos en un grupo y sólo si el usuario ha dado permiso a los miembros del grupo para esos archivos.
  • Para dar permisos a un archivo se emplea el comando:
    • chmod [ a g o u ] [ r w x ]
    • chmod [666]
    • por ejemplo:
    • chmod a=rwx arch
    • da permiso de lectura, escritura y ejecución a todos los usuarios al archivo arch

Octal Descripción Caracteres
0 Ningún permiso (- – -)
1 Solo ejecución (- – x)
2 Solo escritura (- w -)
3 Escritura y Ejecución ( – w x)
4 Solo lectura (r – -)
5 Lectura y ejecución (r – x)
6 Lectura y escritura (r w -)
7 Todos los permisos (r w x)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.