Si has administrado Windows durante algún tiempo, probablemente tienes experiencia en la gestión de cuentas de usuario, en el sistema de archivos NTFS y en el establecimiento de permisos. Si es así, prepárate para un mundo diferente con los permisos de archivo de Linux. En Linux, el sistema de archivos es un animal diferente que debes aprender a manejar como administrador de Linux competente.
¡Esta es la segunda parte de nuestra serie de cuatro partes sobre cómo aprender Linux desde la perspectiva de un administrador de Windows! Asegúrate de leer la primera parte si aún no lo has hecho.
Trabajando con el sistema de archivos
Comencemos por ver cómo Linux almacena y administra archivos a través del sistema de archivos.
Nota: Todos los ejemplos se basarán en OpenSUSE Linux.
No más letras de unidad
A diferencia de Windows, las unidades extraíbles y otros dispositivos no se les asigna automáticamente una letra de unidad y no se abren al reiniciar. En Windows, cada unidad se monta como una letra de unidad: C:\, D:\, etc. ¿Cómo funcionan las letras de unidad en Linux? ¡No existen!
En Linux, hay una carpeta llamada carpeta raíz. Esta carpeta se encuentra en la raíz del sistema de archivos, es decir, en /
. La barra diagonal es la primera barra diagonal antes de cualquier otro archivo en el sistema. Esta barra diagonal es como la base C:\, aunque solo si las demás letras de unidad solo existieran como subcarpetas de C:\.
La carpeta raíz es donde se encuentran los archivos principales del sistema. Todo lo demás, incluidos otros dispositivos, son subcarpetas de esta carpeta central.
Linux difumina la línea entre carpetas y sistemas de archivos. El directorio Linux /home es la raíz de todos los “perfiles” de usuarios, similar a la carpeta C:\Users en Windows. En este caso, /home es un directorio. Sin embargo, las “carpetas” en Linux no tienen que ser necesariamente directorios. También pueden ser particiones de almacenamiento o incluso un disco duro separado por completo. Este concepto es análogo a los puntos de montaje de Windows.
Puedes obtener más información sobre las carpetas raíz en este artículo.
Usuarios y Carpetas de Inicio
Si estás usando OpenSUSE, es posible que notes una carpeta Home en tu escritorio como se muestra a continuación. Esta carpeta es la versión de Linux de la carpeta C:\users\<username> o “perfil”. La carpeta de “usuarios” de Linux reside bajo /home en tu disco de instalación de manera predeterminada.
En el ejemplo a continuación, el usuario se llama homelab con un “perfil” ubicado en /home/homelab.

En Linux (y Windows), la carpeta de inicio (o perfil de usuario en Windows) tiene una notación abreviada de una tilde (~). Si ves algo como
"~/Documents/blah.txt
, en realidad se está refiriendo a tu archivo/home/<username>/Documents/blah.txt
.
La Capitalización lo Es Todo en Linux
Todo en Linux es sensible a mayúsculas y minúsculas. Este concepto es completamente opuesto al de Windows, donde casi nada es sensible a mayúsculas y minúsculas.
Por ejemplo, si tienes un directorio llamado /home/homelab, un directorio completamente diferente puede llamarse /home/Homelab. Este concepto también se aplica a los comandos. Ejecutar cd /home/homelab
es diferente de ejecutar CD /home/homelab
(lo cual debería fallar).
Como persona acostumbrada a Windows, este concepto te confundirá en algún momento. ¡Ten mucho cuidado con la capitalización! Puedes ver un ejemplo de dos carpetas separadas a continuación. La única diferencia entre las dos es la capitalización: En un entorno de Windows, esto no es posible.

Cuentas de usuario
Al igual que en Windows, Linux tiene el concepto de cuentas de usuario, pero se comportan un poco diferente. Comienza pensando en las cuentas de usuario de Linux en términos de las cuentas de usuario familiares de Windows.
Windows tiene algunas cuentas de usuario integradas, como Administrador, la cuenta del sistema oculta, Invitado, etc. Windows también tiene varios grupos de seguridad integrados como Administradores, Invitados, etc.
Puedes ver todos los usuarios y grupos de Windows a través de la MMC de Usuarios y Grupos Locales ejecutando el complemento MMClusrmgr.msc.

SIDs de Windows
Para identificar de forma única usuarios y grupos, Windows se refiere a ellos mediante algo llamado SID. En Windows, puedes encontrar el SID de cada usuario y grupo ejecutando un par de comandos de PowerShell a continuación.

Cada SID de grupo de Windows es el mismo en todas las computadoras con Windows. Los usuarios integrados tienen SID
s únicos en Windows. Ese SID de Administrador que ves en la captura de pantalla de arriba debería ser diferente en cada computadora con Windows. Cualquier usuario o grupo creado en Windows en el futuro será único. Observa el grupo de prueba a continuación. Si crearas un grupo de prueba en tu computadora con Windows, el SID sería diferente.

IDs de Usuario de Linux
Por otro lado, Linux maneja usuarios y grupos de manera similar, pero esta vez Linux no usa SIDs sino IDs de usuario (UIDs) e IDs de grupo (GIDs). Además, a diferencia de Windows, los usuarios y grupos son únicos para la computadora pero no únicos en todas las computadoras. Esto significa que tu UID en la Computadora A podría ser exactamente el mismo UID en la Computadora B, incluso si no es el mismo usuario.
Tanto los UIDs como los GIDs siguen una convención numérica simple; cada UID y GID comienzan en 0 e incrementan de uno en uno desde 1 hasta 999 para cuentas de sistema internas y desde 1000 en adelante para cuentas de usuario personalizadas.
El usuario root integrado siempre tiene un UID de 0 y un GID de 0. Además, al igual que la cuenta oculta SYSTEM de Windows, generalmente (dependiendo de la distribución de Linux) se impide que esta cuenta root inicie sesión.
El usuario root integrado es similar a las cuentas integradas SYSTEM y Administrador de Windows, como fusionadas en una sola. Incluso si estás trabajando como Administrador en Windows, todavía hay algunas protecciones integradas para evitar que destruyas por completo Windows.
El usuario root, por otro lado, es una autoridad absoluta. Si intencionalmente cambias al usuario root (puedes hacerlo en la línea de comandos usando el comando
sudo su
) y tratas de eliminar todo tu sistema operativo, root lo hará felizmente hasta que el sistema muera.
Supongamos que has creado un usuario llamado homelab. El UID para homelab podría entonces ser referenciado ya sea por 1000 o por homelab. El usuario automáticamente se convertirá en miembro del grupo interno users al que puedes referirte con el ID de grupo 100. Puedes encontrar una lista de estas asignaciones ejecutando el comando getent passwd
como se ve a continuación:

getent passwd
inside the terminalTambién puedes encontrar la misma información que arriba para grupos con el comando getent group
.

getent group
inside the terminalPermisos de Archivos en Linux
En un mundo Windows, los permisos de sistema de archivos no son divertidos. Establecer y gestionar permisos en NTFS a veces puede convertirse en una pesadilla con ACE, ACLs, herencia, propagación, etc. Afortunadamente, en Linux los permisos de sistema de archivos son mucho más simples.
En Linux, tienes tres tipos de derechos que puedes asignar a un archivo: lectura, escritura y ejecución, con tres categorías de acceso: propietario, grupo, otros.
- El propietario es el usuario que posee el archivo/carpeta. Cada archivo o carpeta tiene un propietario designado.
- El grupo es el grupo que posee el archivo/carpeta. Esto no tiene que ser el mismo grupo al que pertenece el propietario. Cada archivo o carpeta solo puede pertenecer a un grupo.
- Los otros son… bueno… otros. Son personas que no son parte del grupo propietario o que no son el propietario designado.
Puedes permitir o denegar cada opción para cada categoría. Como ejemplo: puedes dar opciones de lectura, escritura, ejecución para el propietario, y opciones de lectura/ejecución para el grupo y otros. Puedes ver eso en la captura de pantalla a continuación. Esto significa que cualquier persona excepto el usuario que es el propietario de la carpeta no puede modificarlo.
Al igual que en el explorador de Windows, en Ubuntu, puedes ver esta información haciendo lo siguiente:
- Abre la carpeta de inicio en tu escritorio.
- Navega hasta el archivo/carpeta en cuestión.
- Haz clic derecho en el archivo/carpeta y haz clic en Propiedades.
- Haz clic en la pestaña Permisos.
- Haz clic en Permisos Avanzados.
Una vez que estés en la ventana de Permisos Avanzados, puedes ver gráficamente todos los permisos asignados a ese archivo o carpeta.

A continuación, se muestra lo que representa la tabla de Permisos Avanzados.

Propiedad del Archivo
Al igual que en Windows, cada archivo y carpeta tiene un propietario. En Windows, puedes tomar posesión de un archivo en la GUI o mediante el comando takeown. En Linux, tomas posesión ejecutando chown <usuario>:<grupo> <archivo/carpeta>
en la línea de comandos.
Al igual que en Windows, generalmente necesitas permiso administrativo para cambiar la propiedad de los archivos usando sudo. sudo es el equivalente en Linux al Control de Cuentas de Usuario (UAC) de Windows. En lugar de abrir una ventana de línea de comandos administrativa, antepones comandos con sudo para ejecutarlos como administrador.
Creemos una carpeta que sea solo propiedad de root para demostrar algunos de estos conceptos.
- Abre tu carpeta de inicio y navega hasta Documentos
- Abre un símbolo del sistema con clic derecho -> Acciones -> Abrir Terminal aquí, y ejecuta lo siguiente:

Esta carpeta tiene permisos de lectura/escritura/ejecución solo para el propietario. Debido a que creaste la carpeta con derechos de administrador, ese propietario es actualmente root.
También cambiaste los permisos para que solo el propietario tenga acceso. El grupo propietario y otros usuarios no pueden acceder a esta carpeta en absoluto. De hecho, notarás que la carpeta tiene un gran candado que indica que no tienes acceso.
A continuación, puedes ver cómo tomar posesión de esta carpeta.
- Abre otra terminal en esa misma carpeta (o usa la que ya tenías)
- Ejecuta
sudo chown homelab:users ./owned-by-root

Ahora que tienes la propiedad, también puedes cambiar los permisos de archivo dentro de la interfaz gráfica del explorador utilizando la ventana de propiedades.

Normalmente, solo quieres cambiar propiedades, no permisos de archivo. Linux suele saber qué permisos deben tener las cosas de forma predeterminada. Puedes estropear las cosas si usas ‘chmod’ sin conocer las implicaciones.
Notación Numérica para Permisos de Archivos
Si has realizado alguna solución de problemas en Linux, es posible que hayas visto a personas explicar los permisos de archivo mediante un esquema numérico. Puedes ver eso destacado en la captura de pantalla a continuación:

Linux utiliza una notación abreviada para este sistema de acceso mediante números, como 0600. El primer número es para algunas propiedades especiales que puedes agregar, las cuales la gente generalmente ignora. De hecho, la mayoría de las personas solo utilizan tres dígitos para la notación y ignoran el cuarto líder.
Para obtener más información sobre la notación numérica para los permisos de archivos, consulta este artículo.
Conclusión
¡Eso es todo para la Parte II de nuestra serie de publicaciones en el blog “Un tipo de Windows en un mundo Linux”! ¡Asegúrate de mantener el impulso con Parte III!
Source:
https://adamtheautomator.com/linux-file-permissions/