marzo 29, 2024

BitCuco

¡Hola Mundo!

Modificar permisos para archivos y directorios en Linux

Es muy importante modificar permisos para archivos y directorios en Linux, ya que no todos los archivos pueden ser utilizados por el público o un usuario promedio no debería editar los archivos del sistema operativo. Es muy importante la seguridad para poder acceder a ellos, sobre todo cuando compartimos un equipo o utilizamos un servidor que se encuentra en intranet (y por supuesto si tiene acceso a internet).

Para garantizar un acceso seguro, se requieren definir diferentes roles para los diferentes usuarios del sistema, y además los archivos y directorios de acceso deben tener diferentes permisos para que los usuarios los utilicen.

Definir permisos en los archivos y directorios con chmod

El comando para ver los permisos que el usuario tiene para algún archivo o directorio es

El comando para cambiar permisos para cualquier distribución en Linux es chmod. Con éste comando usted puede cambiar los permisos de lectura, escritura y ejecución que algún usuario tiene para uso del archivo indicado.

ls -l /ruta/archivo

En donde podemos ver un conjunto de 9 letras rwxrwxrwx, o bien algunos guiones. Éstas letras significan los permisos que tiene un usuario, grupo y público sobre el archivo o directorio mostrado.

Existen dos formas para asignar o quitar permisos , cambiando un permiso para todos los usuarios (por medio de + y -), o bien designando permisos específicos (forma octal). Ambos casos los mostraremos a continuación:

Cambiar un atributo en chmod

Se utiliza el signo de + para agregar un permiso y el signo de – para quitar un atributo para todos los usuarios en el archivo o directorio especificado, los permisos pueden ser: r para lectura, w para escritura y x para ejecución, el comando para ésta oeración es:

chmod (+ o -)(r, w o x) archivo

Por ejemplo, para agregar el atributo de escritura al archivo ejemplo.txt, el comando a ejecutar sería el siguiente:

chmod +w ejemplo.txt

Y para eliminar el permiso de ejecución para todos los usuarios, ejecutamos:

chmod -x ejemplo.txt

Modificar los atributos de un archivo a la medida

Para modificar los permisos para archivos y directorios en Linux se requieren cambiar los atributos mostrados en el párrafo anterior, modifican los permisos para todos los usuarios, sin embargo, por medidas de seguridad es mala práctica definir los mismos permisos para todos los usuarios, para ello es necesario definir los permisos tanto para el usuario, para el grupo y para el público.

Formación de permisos rwx

Cada permiso es representado por un número octal, el cuál visto como bits, cada uno de ellos representa un valor dentro de los permisos, para cada bit tenemos lo siguiente: si se trata de cero, no hay permiso y si es uno, si hay permiso, tal y como se muestra a continuación:

  • 000 (valor 0) -> No lectura, No esritura, No ejecución
  • 001 (valor 1) -> No lectura, No escritura, Si ejecución
  • 010 (valor 2) -> No lectura, Si escritura, No ejecución
  • 011 (valor 3) -> No lectura, Si escritura, Si ejecución
  • 100 (valor 4) -> Si lectura, No escritura, No ejecución
  • 101 (valor 5) -> Si lectura, No escritura, Si ejecución
  • 110 (valor 6) -> Si lectura, Si escritura, No ejecución
  • 111 (valor 7) -> Si lectura, Si escritura, Si ejecución

Los valores entre paréntesis, corresponden al valor octal, el cuál representa un valor de permiso que se asigna a cada tipo de usuario.

Asignación de permisos para usuarios, grupos y público

Siguiendo la lógica del párrafo anterior, cada valor octal representa un permiso, en donde tenemos tres valores (0-7)(0-7)(0-7), siendo el primero los permisos para el usuario, el segundo los permisos para el grupo y el tercero los permisos para el público.

Al componer éstos permisos, la asignación de permisos se hace así:

chmod xxx ejemplo.txt

Por ejemplo, si queremos establecer permisos:

  • Usuario: si lectura, si escritura y si ejecución
  • Grupo: si lectura, no escritura y no ejecución
  • Público: no lectura, no escritura y no ejecución

El comando sería:

chmod 740 ejemplo.txt

Y así se asignan los permisos para un archivo o directorio, sin embargo, en el caso se directorios se recomienda la opción -R, para cambiar los permisos de los archivos de allí en forma recursiva:

chmod -R 740 /home/pedro