Introducción
Linux es, por definición, un sistema operativo multiusuario basado en los conceptos de Unix de propiedad y permisos de archivos para brindar seguridad a nivel de sistema de archivos. Para administrar un servidor en la nube de forma fiable, es fundamental comprender bien cómo funcionan la propiedad y los permisos. Existen muchas complejidades en la gestión de la propiedad y los permisos de archivos, pero este tutorial será una buena introducción.
Este tutorial explica cómo ver y comprender la propiedad y los permisos de Linux. Si busca un tutorial sobre cómo modificar permisos, puede leer ” Fundamentos de permisos de Linux” y “Cómo usar Umask en un VPS” .
Prerrequisitos
Asegúrese de comprender los conceptos tratados en los tutoriales anteriores de esta serie:
- Introducción a la terminal de Linux
- Navegación básica en Linux y gestión de archivos
Para seguir este tutorial, necesitarás acceso a un servidor en la nube. Puedes seguir esta guía para crear un contenedor de IsnHosting .
Acerca de los usuarios
Como se mencionó en la introducción, Linux es un sistema multiusuario. Es importante comprender los fundamentos de los usuarios y grupos de Linux antes de la propiedad y los permisos, ya que son las entidades a las que se aplican la propiedad y los permisos. Comencemos con qué son los usuarios.
En Linux, existen dos tipos de usuarios: usuarios del sistema y usuarios normales . Tradicionalmente, los usuarios del sistema se utilizan para ejecutar procesos no interactivos o en segundo plano, mientras que los usuarios normales se utilizan para iniciar sesión y ejecutar procesos de forma interactiva. Al inicializar e iniciar sesión en un sistema Linux, es posible que observe que ya cuenta con muchos usuarios del sistema creados para ejecutar los servicios de los que depende el sistema operativo. Esto es normal.
Puede ver todos los usuarios de un sistema consultando el contenido del /etc/passwd
archivo. Cada línea de este archivo contiene información sobre un solo usuario, comenzando por su nombre de usuario (el nombre antes del primer :
). Puede imprimir el contenido del passwd
archivo con cat
:
cat /etc/passwd
Output…
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:111:1::/var/cache/pollinate:/bin/false
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
vault:x:997:997::/home/vault:/bin/bash
stunnel4:x:112:119::/var/run/stunnel4:/usr/sbin/nologin
sammy:x:1001:1002::/home/sammy:/bin/sh
Superusuario
Además de los dos tipos de usuario, existe el superusuario , o usuario root , que puede anular cualquier restricción de propiedad y permisos de archivos. En la práctica, esto significa que el superusuario tiene derecho a acceder a cualquier elemento de su propio servidor. Este usuario se utiliza para realizar cambios en todo el sistema.
También es posible configurar otras cuentas de usuario con la capacidad de asumir “derechos de superusuario”. Esto se conoce como “tener” sudo
, ya que los usuarios con permisos para obtener temporalmente derechos de superusuario lo hacen anteponiendo “<nombre de usuario>” a los comandos de nivel de administrador sudo
. De hecho, se recomienda crear un usuario normal con sudo
privilegios para tareas de administración del sistema. De esta manera, se puede ser más prudente al usar la cuenta de usuario root.
Acerca de los grupos
Los grupos son conjuntos de cero o más usuarios. Un usuario pertenece a un grupo predeterminado y también puede ser miembro de cualquiera de los demás grupos de un servidor.
Puede ver todos los grupos del sistema y sus miembros consultando el /etc/group
archivo, como lo haría con /etc/passwd
los usuarios. Este artículo no trata la administración de grupos.
¡Ahora que ya sabes qué son los usuarios y los grupos, hablemos de la propiedad y los permisos de los archivos!
Visualización de propiedad y permisos
En Linux, cada archivo pertenece a un único usuario y grupo, y tiene sus propios permisos de acceso. Veamos cómo ver la propiedad y los permisos de un archivo.
La forma más común de ver los permisos de un archivo es usar ls
la opción de lista larga -l
, por ejemplo . Si desea ver los permisos de todos los archivos en su directorio actual, ejecute el comando sin el argumento, como se muestra a continuación:ls -l myfile
myfile
ls -l
Nota: Si se encuentra en un directorio de inicio vacío y aún no ha creado ningún archivo para ver, puede continuar enumerando el contenido del /etc
directorio ejecutando este comando:ls -l /etc
A continuación se muestra un ejemplo de captura de pantalla de ls -l
la salida, con etiquetas de cada columna de salida:

Cada archivo indica su modo (que contiene permisos), propietario, grupo y nombre. Para explicar el significado de todas estas letras y guiones, desglosemos la columna de modo en sus componentes.
Modo de comprensión
Para ayudar a explicar qué significan todas las agrupaciones y letras, aquí hay un desglose de los metadatos del modo del primer archivo en el ejemplo anterior:

Tipo de archivo
En Linux, existen dos tipos de archivos: normales y especiales . El tipo de archivo se indica mediante el primer carácter del modo de un archivo; en esta guía, lo llamaremos “campo de tipo de archivo”.
Los archivos normales se identifican con un guion ( -
) en sus campos de tipo de archivo. Pueden contener datos o cualquier otro elemento. Se denominan archivos normales o regulares para distinguirlos de los archivos especiales.
Los archivos especiales se identifican mediante un carácter distinto de un guion, como una letra, en sus campos de tipo de archivo, y el sistema operativo los gestiona de forma diferente a los archivos normales. El carácter que aparece en el campo de tipo de archivo indica el tipo de archivo especial al que pertenece. Por ejemplo, un directorio, que es el tipo más común de archivo especial, se identifica mediante el d
carácter que aparece en su campo de tipo de archivo (como en la captura de pantalla anterior). Existen otros tipos de archivos especiales.
Clases de permisos
En el diagrama, se puede observar que la columna de modo indica el tipo de archivo, seguida de tres tríadas, o clases, de permisos: usuario (propietario), grupo y otros. El orden de las clases es consistente en todos los sistemas Linux.
Las tres clases de permisos funcionan de la siguiente manera:
- Usuario : El propietario de un archivo pertenece a esta clase.
- Grupo : Los miembros del grupo del archivo pertenecen a esta clase. Los permisos de grupo son una forma útil de asignar permisos sobre un archivo determinado a varios usuarios.
- Otro : Cualquier usuario que no sea parte de las clases de usuario o grupo de este archivo pertenece a esta clase.
Permisos simbólicos de lectura
Lo siguiente a lo que hay que prestar atención son esos conjuntos de tres caracteres. Estos indican, en forma simbólica, los permisos que cada clase tiene para un archivo determinado.
En cada tríada, los permisos de lectura, escritura y ejecución se representan de la siguiente manera:
- Leer : Indicado por un
r
en la primera posición - Escribir : Indicado por una
w
en la segunda posición - Ejecutar : Indicado por un símbolo
x
en la tercera posición. En algunos casos especiales, puede haber un carácter diferente aquí.
Un guion ( -
) en lugar de uno de estos caracteres indica que el permiso correspondiente no está disponible para la clase correspondiente. Por ejemplo, si la tríada de grupo (segunda) de un archivo es r--
, el archivo es de “solo lectura” para el grupo asociado.
Comprender Leer, Escribir y Ejecutar
Ahora que sabe cómo leer los permisos de un archivo, debería saber qué permite cada permiso a los usuarios. Este tutorial abordará cada permiso individualmente, pero tenga en cuenta que suelen usarse en combinación para facilitar el acceso a archivos y directorios.
A continuación se muestra un desglose del acceso que los tres tipos de permisos otorgan al usuario:
Leer
Para un archivo normal, el permiso de lectura permite al usuario ver el contenido del archivo.
Para un directorio, el permiso de lectura permite a un usuario ver los nombres de los archivos en el directorio.
Escribir
Para un archivo normal, el permiso de escritura permite al usuario modificar y eliminar el archivo.
Para un directorio, el permiso de escritura permite a un usuario eliminar el directorio, modificar su contenido (crear, eliminar y renombrar archivos en él) y modificar el contenido de los archivos para los que el usuario tiene permiso de escritura.
Ejecutar
Para un archivo normal, el permiso de ejecución permite al usuario ejecutarlo (también debe tener permiso de lectura). Los permisos de ejecución deben estar configurados para programas ejecutables y scripts de shell antes de que el usuario pueda ejecutarlos.
Para un directorio, el permiso de ejecución permite a un usuario acceder o recorrer (es decir cd
) y acceder a los metadatos sobre los archivos en el directorio (la información que aparece en un ls -l
).
Ejemplos de modos (y permisos)
Ahora que ya sabes leer el modo de un archivo, y entiendes el significado de cada permiso, verás algunos ejemplos de modos comunes, con breves explicaciones, para unir los conceptos.
-rw-------
:Un archivo al que sólo puede acceder su propietario-rwxr-xr-x
Un archivo ejecutable por todos los usuarios del sistema. Un archivo “ejecutable universalmente”.-rw-rw-rw-
Un archivo que puede ser modificado por cualquier usuario del sistema. Un archivo con permisos de escritura universal.drwxr-xr-x
:Un directorio que todos los usuarios del sistema pueden leer y accederdrwxrwx---
:Un directorio que puede modificarse (incluido su contenido) por su propietario y grupodrwxr-x---
:Un directorio al que puede acceder su grupo
El propietario de un archivo suele tener más permisos que las otras dos clases. Normalmente, verá que el grupo y otras clases solo tienen un subconjunto de los permisos del propietario (equivalente o inferior). Esto es lógico, ya que los archivos solo deben ser accesibles para los usuarios que los necesitan por un motivo específico.
Otro punto a tener en cuenta es que, aunque existen muchas combinaciones de permisos posibles, solo algunas son adecuadas en la mayoría de las situaciones. Por ejemplo, el acceso de escritura o ejecución casi siempre va acompañado de acceso de lectura , ya que es difícil de modificar e imposible de ejecutar, algo que no se puede leer.
Conclusión
Ahora deberías comprender bien cómo funcionan la propiedad y los permisos en Linux. Para aprender a modificar estos permisos usando chown
, chgrp
, y chmod
, consulta “Fundamentos de permisos de Linux” y “Cómo usar Umask en un VPS” .
Si desea obtener más información sobre los fundamentos de Linux, lea el próximo tutorial de esta serie, Introducción a la redirección de E/S de Linux .
Gracias por aprender con la Comunidad de DigitalOcean. Descubra nuestras ofertas de computación, almacenamiento, redes y bases de datos administradas.
Conozca más sobre nuestros productos
Siguiente en la serie: Introducción a la redirección de E/S de Linux ->
Serie de tutoriales: Introducción a Linux
Si eres nuevo en Linux y su interfaz de línea de comandos, puede que te parezca abrumador empezar a usarlo. Esta serie te pondrá al día con los fundamentos esenciales de Linux y te proporcionará una base sólida para trabajar con servidores Linux. Si tienes poco o ningún conocimiento sobre Linux, este es el punto de partida ideal.
Conceptos básicos de LinuxConceptualExplorar Series: 4 artículos
- 1/4 Introducción a la terminal de Linux
- 2/4 Navegación y gestión de archivos en Linux
- 3/4 Introducción a los permisos de Linux