Linux Permisos en Archivos y Directorios🐧
En esta sección, aprenderemos a otorgar y revocar permisos en archivos de Linux/Unix. Este proceso es esencial para gestionar cuidadosamente a qué usuarios y grupos se les permite la lectura, escritura y ejecución de un archivo. No todos los archivos deberían ser accesibles o ejecutables por todos los usuarios del sistema, ya que esto puede dar lugar a vulnerabilidades potenciales en la seguridad. La correcta administración de permisos es una medida preventiva clave para proteger tus datos y mantener la integridad del sistema.
Importancia de Permisos en Sistemas Linux/Unix
Supongamos que estamos en nuestro servidor Linux, y tenemos archivos con extensión .sh. Estos scripts están escritos en Bash o Zsh y pueden configurar el sistema o guardar información sensible, como credenciales de usuario o configuraciones críticas. Ahora, imagina que uno de estos archivos es ejecutable y contiene comandos que se ejecutan con permisos de root. Si accidentalmente se le asigna un permiso de 777, cualquier usuario podría leer, modificar o ejecutar este archivo, ¡incluso con acceso a comandos que deberían estar reservados para el administrador!
Darle permisos tan amplios puede ser un riesgo grave, ya que un usuario con malas intenciones o que simplemente no debería tener acceso podría manipular configuraciones importantes o robar datos. Para evitar esto, lo mejor es ajustar los permisos a una configuración más restrictiva, como 600, que solo permite que el propietario lea y escriba el archivo, sin dar acceso a otros. De esta forma, mantenemos el control y minimizamos riesgos innecesarios de seguridad.
Tipos de Permisos en Linux y Unix
En Linux y sistemas Unix, los permisos de archivos y directorios se gestionan utilizando un sistema de permisos basado en tres tipos:
1. Tipos de Permisos
- Lectura (
r
):- Archivos: Permite leer el contenido del archivo.
- Directorios: Permite listar los archivos y subdirectorios en el directorio.
- Escritura (
w
):- Archivos: Permite modificar el contenido del archivo.
- Directorios: Permite agregar, eliminar y renombrar archivos dentro del directorio.
- Ejecución (
x
):- Archivos: Permite ejecutar el archivo como un programa.
- Directorios: Permite acceder al directorio y utilizarlo como un camino en una ruta de archivos.
2. Representación de Permisos
Los permisos se pueden representar de dos maneras: simbólica y octal.
Representación Simbólica
Los permisos se expresan en forma de letras:
r
para lecturaw
para escriturax
para ejecución-
si no se tiene el permiso
Por ejemplo, en la representación rwxr-xr--
:
- Propietario:
rwx
(lectura, escritura y ejecución) - Grupo:
r-x
(lectura y ejecución) - Otros:
r--
(solo lectura)
3. Formato de Tipo de Permisos
El formato de permisos en Linux se presenta en una cadena de 10 caracteres que incluye:
- Tipo de archivo: El primer carácter indica el tipo (por ejemplo,
-
para archivo regular,d
para directorio,l
para enlace simbólico). - Permisos del propietario: Los siguientes tres caracteres indican los permisos del propietario.
- Permisos del grupo: Los siguientes tres caracteres indican los permisos del grupo.
- Permisos de otros: Los últimos tres caracteres indican los permisos para otros usuarios.
Por ejemplo:
-rw-r--r--
Desglose:
-
: Archivo regular.rw-
: Propietario tiene permisos de lectura y escritura.r--
: Grupo tiene permiso de lectura.r--
: Otros tienen permiso de lectura.
4. Categoría de Usuarios
Los permisos se aplican a tres categorías de usuarios:
- Propietario (
u
): El usuario que es dueño del archivo o directorio. - Grupo (
g
): Un grupo de usuarios que comparten permisos sobre el archivo o directorio. - Otros (
o
): Todos los demás usuarios que no son ni el propietario ni parte del grupo.
5. Representación Octal
La representación octal utiliza números para expresar los permisos:
- 4: Lectura (
r
) - 2: Escritura (
w
) - 1: Ejecución (
x
) - 0: Sin permiso (
-
)
Los permisos se suman para cada categoría. Por ejemplo:
7
(4+2+1
) =rwx
(lectura, escritura y ejecución)6
(4+2
) =rw-
(lectura y escritura)5
(4+1
) =r-x
(lectura y ejecución)4
=r--
(solo lectura)
Ejemplos de Representación Octal
chmod 755 archivo
: Establece permisos comorwxr-xr-x
:- Propietario:
rwx
(lectura, escritura y ejecución) - Grupo:
r-x
(lectura y ejecución) - Otros:
r-x
(lectura y ejecución)
- Propietario:
chmod 644 archivo
: Establece permisos comorw-r--r--
:- Propietario:
rw-
(lectura y escritura) - Grupo:
r--
(solo lectura) - Otros:
r--
(solo lectura)
- Propietario:
chmod 700 directorio
: Establece permisos comorwx------
:- Propietario:
rwx
(lectura, escritura y ejecución) - Grupo:
---
(sin permisos) - Otros:
---
(sin permisos)
- Propietario:
6. Ejemplos Comunes
chmod 777 archivo
: Da permisos completos a todos (lectura, escritura y ejecución).chmod 600 archivo
: Solo permite al propietario leer y escribir el archivo.chmod 444 archivo
: Solo permite a todos leer el archivo (sin escritura ni ejecución).
7. Comandos Relacionados
chmod
: Cambia los permisos de un archivo o directorio.
Uso:chmod [opciones] permisos archivo
chown
: Cambia el propietario de un archivo o directorio.
Uso:chown usuario:grupo archivo
chgrp
: Cambia el grupo asociado a un archivo o directorio.
Uso:chgrp grupo archivo
8. Cómo Utilizar
- Para cambiar permisos:
Usachmod
seguido de la representación octal o simbólica. Por ejemplo, para dar permisos de lectura y escritura al propietario y solo lectura al grupo y otros:chmod 644 archivo.txt
- Para cambiar propietario:
Si quieres cambiar el propietario de un archivo ausuario
y el grupo agrupo
:chown usuario:grupo archivo.txt
- Para ver permisos:
Usals -l
para listar archivos y mostrar sus permisos.ls -l
8.Conclusion
Manejar los permisos en Linux/Unix es clave para mantener todo bajo control. No es solo un tema de “quién puede hacer qué”, sino de asegurarse de que los archivos y configuraciones críticas no estén al alcance de cualquiera. Saber cómo funcionan los permisos de lectura, escritura y ejecución, y cómo asignarlos de forma correcta, es el primer paso para evitar que usuarios no autorizados tengan acceso innecesario a tu sistema.
Ajustar los permisos a configuraciones más estrictas como 600 o 700 para archivos importantes te ayuda a limitar el acceso solo a quienes realmente necesitan esos permisos. Evita a toda costa los 777 — esos permisos abiertos pueden meter a tu sistema en problemas serios. Al final del día, se trata de mantener el control y reducir las chances de que alguien haga un mal uso de tus archivos.
Así que, ya sabes: define bien quién tiene acceso, qué puede hacer, y mantén tu sistema tan seguro como tus configuraciones de permisos te lo permitan.
Ejercicios de Gestión de Permisos en Linux/Unix
- Verificar permisos de un archivo:
- Usa el comando
ls -l
para mostrar los permisos de un archivo específico (por ejemplo,archivo.txt
).
- Usa el comando
- Cambiar permisos a lectura y escritura para el propietario:
- Usa
chmod
para dar permisos de lectura y escritura al propietario de un archivo.
- Usa
- Agregar permisos de ejecución a un archivo:
- Modifica los permisos de un archivo de script (por ejemplo,
script.sh
) para que sea ejecutable, pista también se utilizachmod
.
- Modifica los permisos de un archivo de script (por ejemplo,
- Quitar permisos de escritura para el grupo:
- Usa
chmod
para eliminar el permiso de escritura de un archivo (por ejemplo,documento.txt
) para el grupo.
- Usa