Gestión de los permisos de acceso de usuario¶
En este artículo
Permisos: tipos¶
Linux emplea un sistema de permisos flexible que ayuda a controlar quién puede interactuar con archivos y directorios y cómo. Esto mejora enormemente la seguridad del sistema.
Solo el superusuario root tiene control total sobre todo el sistema, por lo que el uso de root para tareas diarias se considera arriesgado: cualquier error puede causar daños graves. Los usuarios regulares, por defecto, solo pueden trabajar en sus directorios personales y no tienen acceso a los archivos del sistema, lo que evita cambios accidentales o maliciosos.
Para cada archivo o directorio, se definen tres tipos de permisos:
- r (lectura) – lectura,
- w (escritura) – escritura (cambio de contenido),
- x (ejecución) – ejecución (para archivos) o entrada (para directorios).
Estos permisos se aplican a tres categorías de usuarios:
- Propietario – el usuario que posee el archivo (generalmente el creador).
- Grupo – un conjunto de usuarios en un grupo; reciben permisos compartidos sobre el archivo.
- Otros – todos los usuarios restantes que no pertenecen a las dos primeras categorías.
Cada categoría puede tener su propio conjunto independiente de permisos.
Los permisos se expresan de dos maneras:
- Formato alfanumérico: por ejemplo,
rwxr-xr--. - Formato numérico: cada permiso se codifica como un número (lectura = 4, escritura = 2, ejecución = 1), y la suma da el valor final.
Por ejemplo,7=4+2+1=rwx.
El valor numérico se escribe en el orden propietario, grupo, otros.
Así, 755 (rwxr-xr-x) significa:
- El propietario puede leer, escribir y ejecutar (o entrar en el directorio).
- Todos los demás pueden leer y ejecutar (o ver el contenido del directorio y entrar en él).
Ejemplos típicos de permisos:
- 600 (
rw-------) – solo el propietario puede leer y editar el archivo. - 644 (
rw-r--r--) – el propietario edita; los demás solo pueden leer. - 700 (
rwx------) – acceso completo solo para el propietario. - 755 (
rwxr-xr-x) – el propietario puede hacer todo; los demás solo pueden ver y usar (ejecutar archivos o entrar en directorios).
Nota
Preste especial atención a los permisos de los directorios: para permitir que un usuario vea no solo la lista de archivos sino también sus atributos (por ejemplo, tamaño o propietario), necesita al menos lectura + ejecución r-x (es decir, 5). Solo lectura r-- le permite ver los nombres de los archivos pero no sus propiedades, y sin ejecución x ni siquiera puede cd en el directorio.
Configuración de permisos¶
Configuración de permisos mediante SSH¶
Los permisos de archivos y directorios en Linux se gestionan con el comando chmod. Hay dos formas principales de usarlo.
Método 1: Modo numérico (absoluto)¶
En este método, establece inmediatamente el conjunto completo de permisos para las tres categorías de usuarios: propietario, grupo y otros, utilizando un número de tres dígitos.
Formato del comando:
Ejemplos:
chmod 755 test.php– el propietario recibe derechos completosrwx, mientras que el grupo y los demás obtienen solo lectura y ejecución (r-x).chmod 644 test.php– el propietario puede leer y editar; los demás solo pueden leer.chmod 755 dir– derechos similares para un directorio.
Para aplicar permisos de forma recursiva a todos los archivos y subdirectorios dentro de una carpeta, utilice la bandera -R:
Nota
Tenga cuidado con -R: el comando cambiará los permisos de todo el contenido del directorio, incluidas las carpetas y archivos anidados.
Método 2: Modo simbólico (relativo)¶
Aquí modifica solo la parte necesaria de los permisos sin tocar el resto. Esto es útil para pequeños ajustes.
Formato del comando:
Categorías:
u– propietario (usuario)g– grupoo– otrosa– todos
Operaciones:
+– agregar un permiso-– eliminar un permiso=– establecer un valor exacto (eliminando otros)
Los permisos se especifican como r, w, x (por ejemplo, rx, no r-x).
Ejemplos:
chmod g+rx test.php– permitir que el grupo lea y ejecute el archivo.chmod g-w test.php– denegar al grupo el acceso de escritura.chmod o-rw test.php– eliminar lectura y escritura para los demás.chmod go+rx dir1– otorgar al grupo y a los demás permiso para ver y entrar en el directorio.chmod -R go+r new_directory– permitir recursivamente que el grupo y los demás lean todos los archivos y directorios dentro denew_directory.
Este método es más flexible y seguro, especialmente cuando es importante no alterar los permisos existentes.
Configuración de permisos mediante un cliente FTP¶
Cambiar y establecer permisos también es muy conveniente con un cliente FTP. Veamos el proceso utilizando el cliente gratuito FileZilla.
- Conéctese al servidor y seleccione el archivo o directorio deseado.
- Haga clic derecho y seleccione Permisos de archivo… en el menú contextual.
- Establezca los permisos requeridos.
Visualización de los permisos actuales¶
Para ver los permisos asignados, utilice el comando ls.
Permisos para los archivos en el directorio actual:
Permisos para un archivo o directorio específico (por ejemplo, text.doc o dir1):
Permisos para los archivos en todos los subdirectorios anidados del directorio actual:
Nota
No cierre la sesión SSH actual hasta haber verificado que la nueva funciona. De lo contrario, podría perder el acceso al servidor.