Cambiar el permiso de carpeta y directorios en Linux/Unix

Nilesh Katuwal 30 enero 2023
  1. Propiedad de archivos en un sistema Unix/Linux
  2. Ver permisos de archivos en Linux
  3. Cambiar permisos de archivo en un sistema Unix/Linux
  4. Cambio de grupos y propietario en Linux
  5. Cambiar el comando de propiedad en Linux
  6. Usar el chmod en Modo Absoluto en Linux
Cambiar el permiso de carpeta y directorios en Linux/Unix

El sistema de permisos de archivos es uno de los elementos de seguridad esenciales del sistema operativo Linux.

Estas características nos permiten ajustar los permisos de archivo y los modos de acceso. Proporcionamos permisos basados ​​en los permisos adecuados para evitar posibles vulnerabilidades cuando un usuario no tiene el acceso adecuado a archivos y carpetas.

Propiedad de archivos en un sistema Unix/Linux

En un sistema Unix/Linux, hay tres tipos de propiedad de archivos y directorios. El propietario asignado del archivo tiene la autoridad para modificarlo en función de los permisos que recibe.

  • Permiso del propietario: los permisos del propietario del archivo especifican qué funciones puede realizar el propietario del archivo. Dado que el usuario que crea un archivo se convierte en su propietario, un usuario también se conoce como propietario.
  • Permisos por grupo: los permisos de un grupo determinan qué actividades puede realizar un usuario en un archivo si es miembro de ese grupo.
  • Permisos adicionales: los permisos de otros usuarios definen qué acciones pueden realizar con el archivo.

Cada archivo tenía tres opciones de acceso al principio. Son los siguientes:

  • El Read (r): Te permite recuperar el contenido del archivo pero no escribirlo. Le permitirá recibir una lista de archivos y directorios que se encuentran en un directorio.
  • La Write (w): Le permite agregar nuevos datos a los archivos o alterar los existentes, así como crear y modificar archivos y directorios.
  • El Execute (x): Si un programa no tiene la bandera de ejecución, no se puede ejecutar. Esta propiedad se establece para todos los programas y scripts. El sistema lo usa para determinar si el archivo debe o no iniciarse como un programa.

Ver permisos de archivos en Linux

Por supuesto, puede usar un administrador de archivos en Linux para buscar permisos de archivos. Todos admiten esta funcionalidad, pero recibirá información parcial de esta manera.

Use el comando ls con el argumento -l para obtener detalles completos sobre todas las banderas. Se mostrarán todos los archivos en el directorio, junto con sus propiedades y bits.

Ejecute el siguiente comando en la carpeta donde se almacenan los archivos para averiguar los permisos en un archivo de Linux:

$ ls -l

Creé una carpeta y dos archivos, test y testfile dentro de ella.

Producción :

total 0
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

La primera columna indica los distintos modos de acceso o los permisos asociados a un archivo o directorio. Luego hay grupos de derechos, primero para el propietario, luego para el grupo y todos los demás.

Echemos un vistazo más de cerca a lo que significan los valores condicionales de las banderas de permiso:

  • --- - ningún derecho en absoluto;
  • --x - solo se permite la ejecución de archivos, como un programa, pero no cambiar ni leer;
  • -w- - solo se permite escribir y modificar el archivo;
  • -wx - permite la modificación y ejecución, pero en el caso de un directorio, no puede ver su contenido;
  • r-- - derechos de solo lectura;
  • rx - solo lectura y ejecución, sin acceso de escritura;
  • rw- - permisos de lectura y escritura, pero sin ejecución;
  • rwx - todos los derechos;
  • --s - Cuando se establece el bit SUID o SGID, en el campo se muestra el SUID del propietario, mientras que en el campo se muestra el SGID del grupo;
  • --t - Sticky-bit está configurado, lo que significa que los usuarios no pueden eliminar este archivo.

Cambiar permisos de archivo en un sistema Unix/Linux

El chmod es un comando de cambio de modo que cambia los permisos de un archivo o directorio. Las dos formas de usar chmod son los modos simbólico y absoluto.

Usa el chmod en Modo Simbólico

El modo simbólico es el enfoque más sencillo para que un alumno ajuste los permisos de archivos o directorios.

Con los operadores de la siguiente tabla, puede agregar, eliminar o especificar el conjunto de permisos que desee con permisos simbólicos.

operador chmod descripción
+ Los permisos especificados se agregan a un archivo o directorio.
- Elimina los permisos especificados de un archivo o directorio.
= Establece el permiso para los usuarios especificados.

Veamos un ejemplo. Cuando ejecute ls -l en la prueba, verá que los permisos son los siguientes:

$ ls -l test

Producción :

-rw-rw-r-- 1 user user 0 Jan 14 01:00 test

Luego ejecute cada uno de los comandos chmod de muestra de la tabla anterior en la prueba, seguido de ls -l para ver los cambios de permisos.

$ chmod o+wx test
$ ls -l test

Aquí, o denota otros usuarios, w escribe y x ejecuta. + se usa para agregar permisos específicos a un archivo de test.

Producción :

-rw-rw-rwx 1 user user 0 Jan 14 01:00 test

Podemos ver las diferencias en las dos salidas anteriores. -rw-rw-r-- se cambia por -rw-rw-rwx. El comando anterior agregó permisos rw a otros usuarios.

Cambio de grupos y propietario en Linux

Cuando crean una cuenta en Unix, cada usuario recibe una identificación de propietario y una identificación de grupo. Todos los permisos anteriores también se asignan según el Propietario y el Grupo.

Hay principalmente dos comandos para cambiar los grupos y propietarios.

  • chown: El comando chown, que significa change owner, se utiliza para cambiar el propietario de un archivo.
  • chgrp: El comando chgrp, que significa change group, se utiliza para cambiar el grupo de un archivo.

Los grupos de permisos utilizados son:

  • u – Propietario
  • g – Grupo
  • o – Otros
  • a – Todos los usuarios

Cambiar el comando de propiedad en Linux

El comando chown se utiliza para cambiar la propiedad de un archivo.

La siguiente es la sintaxis básica:

$ chown [name] [filename]

El nombre de un usuario del sistema o la identificación de usuario (UID) de un usuario del sistema se puede utilizar como el valor del usuario.

Del mismo modo, para cambiar el propietario del grupo del archivo:

$ chgrp [group_name] [filename]

Usar el chmod en Modo Absoluto en Linux

Los permisos de archivo también se pueden cambiar en código numérico. Los códigos numéricos equivalentes para el modo de acceso son los siguientes:

Números Modo de acceso
0 ---
1 -x
2 -w-
3 -wx
4 r-
5 r-x
6 rw-
7 rwx

Por ejemplo, chmod 711 filename otorga al propietario todos los derechos y a todos los demás usuarios solo el derecho de ejecución.

Veamos los permisos del archivo testfile.

$ ls -l testfile

Producción :

-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

Ahora, usando código numérico con chmod.

$ chmod 711 testfile
$ ls -l testfile

Producción :

-rwx--x--x 1 user user 0 Jan 14 01:00 testfile

Como se ve en la salida, se cambia el permiso del archivo.