Usuarios y Permisos

Comprender y gestionar adecuadamente los usuarios y permisos es una piedra angular de la seguridad y la administración eficiente de cualquier sistema operativo.

¿De que trata?

En un Sistema Operativo (SO), los usuarios y permisos se refieren al sistema que controla quién puede acceder a los recursos de la computadora (archivos, carpetas, programas, dispositivos) y qué acciones pueden realizar sobre ellos. Es como el sistema de seguridad de un edificio: no cualquiera puede entrar, y quienes sí pueden (los usuarios) tienen diferentes niveles de acceso (los permisos) a distintas áreas o herramientas.

Este sistema es fundamental por varias razones:

  • Seguridad: Protege la información y el sistema operativo de accesos no autorizados, eliminaciones accidentales o modificaciones maliciosas.

  • Privacidad: Garantiza que los archivos y datos personales de un usuario estén protegidos de otros usuarios en la misma computadora.

  • Estabilidad: Previene que programas maliciosos o usuarios inexpertos causen daños al sistema.

  • Colaboración: Permite que múltiples personas usen la misma computadora o servidor de manera organizada, con sus propias configuraciones y espacios de trabajo.

¿Cómo se hace el Manejo de Usuarios y Permisos?

La gestión de usuarios y permisos se realiza a través de herramientas proporcionadas por el sistema operativo, ya sea mediante una interfaz gráfica de usuario (GUI) o a través de la línea de comandos (CLI).

1. Crear Usuarios y Tipos de Cuentas

  • ¿De qué trata? Es el proceso de establecer nuevas identidades dentro del sistema operativo, cada una con su propio perfil, configuraciones y un nivel de acceso específico. Cada usuario tiene un nombre de usuario y una contraseña asociada.

  • Tipos de Cuentas Principales:

    • Cuenta de Administrador (o "Root" en Linux/macOS):

      • De qué trata: Posee el control total sobre el sistema operativo. Puede instalar software, cambiar configuraciones del sistema, crear y eliminar otros usuarios, acceder a todos los archivos y realizar cualquier tarea administrativa.

      • Uso: Debe usarse con precaución y solo cuando sea necesario. Es la cuenta para tareas de mantenimiento, instalación y solución de problemas.

    • Cuenta de Usuario Estándar (o "Normal" / "Limitado"):

      • De qué trata: Tiene acceso limitado al sistema. Puede ejecutar programas, guardar archivos en su propio directorio personal, pero no puede instalar la mayoría del software, cambiar configuraciones críticas del sistema ni acceder a archivos de otros usuarios sin permiso explícito.

      • Uso: Ideal para el uso diario, ya que minimiza el riesgo de que un error accidental o un malware dañen el sistema.

    • Cuenta de Invitado:

      • De qué trata: Una cuenta temporal con acceso muy limitado, generalmente sin contraseña, para un uso ocasional por personas que no necesitan guardar archivos o acceder a configuraciones.

      • Uso: Útil para permitir que alguien use tu PC por un breve periodo sin acceder a tus datos. (Algunos SOs la han eliminado por motivos de seguridad).

  • Cómo se hace (Crear Usuarios):

    • GUI (Windows):

      1. Ve a Configuración > Cuentas > Familia y otros usuarios (Windows 10/11) o Panel de Control > Cuentas de Usuario > Administrar otra cuenta (versiones anteriores).

      2. Haz clic en "Agregar otra persona a este equipo" o "Crear una cuenta nueva".

      3. Sigue las instrucciones, introduce el nombre de usuario, contraseña y establece el tipo de cuenta (Administrador o Estándar).

    • GUI (macOS):

      1. Ve a Preferencias del Sistema > Usuarios y Grupos.

      2. Haz clic en el candado para desbloquear y autenticarte como administrador.

      3. Haz clic en el botón + (más) para añadir un nuevo usuario.

      4. Elige el tipo de cuenta (Administrador, Estándar, Solo compartir, Grupo).

    • CLI (Linux - Ej. Ubuntu):

      1. Abre la Terminal.

      2. Para crear un usuario estándar: sudo adduser nombredeusuario

      3. Te pedirá una contraseña para el nuevo usuario y otros datos opcionales.

      4. Para añadirlo al grupo de administradores (sudoers) si quieres que tenga permisos elevados: sudo usermod -aG sudo nombredeusuario (o el grupo equivalente en tu distro).

      • sudo: Significa "superuser do", permite ejecutar comandos como administrador.

2. Asignar Permisos y Restricciones

  • ¿De qué trata? Una vez creados los usuarios, el SO permite definir exactamente qué pueden hacer con los archivos y carpetas, y qué acceso tienen a los recursos del sistema. Esto se basa en el concepto de ACL (Access Control List).

  • Tipos de Permisos Comunes (en archivos/carpetas):

    • Lectura (Read): Permite ver el contenido de un archivo o listar el contenido de una carpeta.

    • Escritura (Write): Permite modificar o eliminar el contenido de un archivo, o crear/eliminar archivos dentro de una carpeta.

    • Ejecución (Execute): Permite ejecutar un archivo (si es un programa) o acceder a una carpeta (navegar dentro de ella).

  • Grupos de Permisos (en Linux/Unix): En sistemas Linux, los permisos se asignan a tres categorías:

    • Propietario (Owner): El usuario que creó el archivo/carpeta.

    • Grupo (Group): Un conjunto de usuarios. Los miembros de este grupo tienen los permisos asignados al grupo.

    • Otros (Others): Todos los demás usuarios del sistema.

    • Estos permisos se representan con las letras rwx (read, write, execute) o números octales (4 para lectura, 2 para escritura, 1 para ejecución).

  • Cómo se hace (Asignar Permisos y Restricciones):

    • GUI (Windows - Permisos de Archivos/Carpetas):

      1. Haz clic derecho en el archivo o carpeta.

      2. Selecciona "Propiedades".

      3. Ve a la pestaña "Seguridad".

      4. Haz clic en "Editar" para cambiar los permisos para usuarios o grupos específicos.

      5. Puedes "Permitir" o "Denegar" permisos de "Control total", "Modificar", "Leer y ejecutar", "Leer", "Escribir", etc.

      6. Las restricciones de software también se gestionan a través de herramientas como el "Control de cuentas de usuario (UAC)" que pide confirmación para tareas administrativas, o políticas de seguridad.

    • GUI (macOS - Permisos de Archivos/Carpetas):

      1. Haz clic derecho (o Ctrl + clic) en el archivo o carpeta.

      2. Selecciona "Obtener información".

      3. Expande la sección "Compartir y permisos".

      4. Haz clic en el candado para autenticarte como administrador.

      5. Puedes cambiar los permisos para el propietario, el grupo y "Todos" (otros usuarios).

    • CLI (Linux - Permisos de Archivos/Carpetas):

      1. Abre la Terminal.

      2. Para ver los permisos de un archivo/carpeta: ls -l nombre_archivo_o_carpeta

        • Verás algo como: -rw-r--r-- (archivo, propietario: rw, grupo: r, otros: r)

        • r=lectura, w=escritura, x=ejecución, -=sin permiso.

      3. Para cambiar permisos (comando chmod):

        • chmod 755 MiScript.sh: Da permisos de lectura, escritura y ejecución al propietario; y lectura y ejecución a grupo y otros. (7=rwx, 5=r-x)

        • chmod u+x MiScript.sh: Añade permiso de ejecución (x) al usuario (u) propietario.

        • chmod o-w MiCarpeta: Elimina el permiso de escritura (w) para otros (o) en una carpeta.

      4. Para cambiar el propietario y/o grupo de un archivo/carpeta (comando chown):

        • sudo chown nuevo_usuario MiArchivo.txt

        • sudo chown :nuevo_grupo MiArchivo.txt

        • sudo chown nuevo_usuario:nuevo_grupo MiArchivo.txt

Consideraciones Adicionales:

  • Principio de Mínimo Privilegio: Siempre asigna a los usuarios y programas solo los permisos mínimos necesarios para realizar sus tareas. No uses la cuenta de administrador para el uso diario.

  • Grupos de Usuarios: En entornos más complejos (especialmente empresariales), los usuarios se organizan en grupos. Los permisos se asignan a los grupos, y luego los usuarios se añaden a los grupos apropiados, lo que simplifica la administración.

  • Políticas de Seguridad: Los SOs permiten configurar políticas de seguridad más amplias, como políticas de contraseñas (longitud mínima, complejidad, caducidad), bloqueo de cuentas por intentos fallidos, etc.