Permisos de archivos

Gestiona permisos en tu servidor con chmod y chown

|

Tiempo de lectura: 3 minutos

Actualizado el miércoles, 12 julio, 2023

Permisos de archivos

Si tienes un Servidor Dedicado o un VPS, quizás necesites gestionar la propiedad y los permisos de las carpetas y ficheros allí alojados. En Linux existen dos comandos principalmente para cambiar propietarios y modificar permisos: chmod y chown.

Recuerda que con el comando ls-l podrás ver los permisos que tiene ese fichero o directorio. Si un fichero tuviera todos los permisos, los 9 caracteres serían: rwx rwx rwx

Interpretación de los permisos

Después de ejecutar ls -l . Te aparecerá listado el contenido seguido de nueve caracteres. Esos nueve caracteres (rwx rwx rwx) indican los 3 permisos que tienen diferentes grupos. El primer trío corresponde al propietario del fichero, quien lo creó. El segundo trío de caracteres al grupo propietario. Y la última terna, al resto de usuarios.

Significado de los caracteres

Ficheros

  • r: Permiso de lectura (read)
  • w: Permiso de escritura (write)
  • x: Permiso de ejecución (execute)
  • : Sin permiso.

Directorios

  • r: Permiso para listar el contenido del directorio.
  • w: Permiso para crear o borrar archivos.
  • x: Permiso para acceder a los archivos.

Los permisos solo los pueden cambiar: el usuario propietario del fichero y root.

Modificando los permisos y propietarios, incrementarás la seguridad de tu servidor, pero cuidado, porque hacerlo mal, provocaría todo lo contrario. A continuación te detallamos que hace cada uno de estos comandos. Si no tienes un servidor, pero eres usuario de Linux, también te puede resultar interesante. 😉

Comando chmod

Con este comando podrás modificar los permisos que tiene un fichero o directorio.

# chmod permisos nombre_fichero

Cada grupo de permisos (rwx) ha de pasarse a un número en base 8. Para no complicarte mucho, sustituye cada letra por este valor: lectura(4) + escritura(2) + ejecución (1)+ guión (0)

Por ejemplo: Para que archivo.txt tenga los permisos siguientes: r w x r – x – -x.

  • Primero cambiamos cada letra por su valor, manteniendo la agrupación en tres: (4+2+1)(4+0+1)(0+0+1) = 751
  • Por tanto, la instrucción a ejecutar es:  chmod 751 archivo.txt  

Si ejecutásemos esa instrucción, el usuario propietario tendría todos los permisos. El grupo propietario lectura y ejecución y el resto solo ejecución.

Si quisiésemos hacer ese cambio de forma recursiva en directorios habría que incluir el parametro -R: chmod -R permisos directorio

Comando chown

Con este comando podrás modificar el propietario y grupo propietario de un archivo. Esto puede serte necesario para cambiar permisos.

# chown nuevo-propietario:nuevo-grupo nombre_fichero

Este comando es mucho más sencillo que el anterior. Para verificar que has cambiado correctamente los propietarios puedes volver a ejecutar ls -l nombre_fichero. Al igual que chmod utilizando la opción -R podemos crear una operación recursiva cambiando la propiedad de carpetas y archivos contenidos dentro de un directorio.

Has visto, como modificar los permisos y propietarios de archivos y carpetas en tu servidor es muy sencillo, pero hay algunas consideraciones que deberías tener en cuenta antes de hacer nada. Si necesitas conocer todas las opciones de los comandos, recuerda que puedes ejecutar man chmod y man chown para encontrar el manual completo de los comandos que proporcionan los sistemas Unix.

Siempre que puedas pon permisos restrictivos. Con esto me refiero a que no le des permisos 777 a todos los archivos, ya que puede ser una puerta de entrada a hackers y malhechores.

Como norma general, lo más habitual es que las carpetas tengan unos permisos 755 y los ficheros 644. Aunque pienses que un archivo necesites todos los permisos de ejecución para que todo funcione, mejor cerciorarse antes.

Extra tip: Clientes dinahosting

Si trabajar desde consola no es lo tuyo, recuerda que desde el Panel de Control de dinahosting también puedes modificar los permisos de archivos y carpetas que tengas en hosting. En el explorador de archivos a la derecha, cuando tengas seleccionado un archivo te aparecerá unos checks en donde modificar el valor de estos permisos, sin tener que acordarte del código octal que representa cada uno.

Permisos en dinahosting sin chmod

Por último, no olvides que en dinahosting ofrecemos un servicio de Asesoría Técnica en el cual analizamos tus productos y te recomendamos ajustes o solventamos posibles problemas que puedan aparecer en tus servidores, hosting, VPS…

Si quieres obtener más información sobre este servicio, no dudes en contactar a través del teléfono, email o chat.

Pasar un número binario a base octal

Aunque en mitad del post te hemos indicado la forma rápida de conseguir los permisos en base octal, si tienes interés, a continuación te detallamos un poco más de dónde viene ese número. Recuerda que los permisos se representan como una sucesión de nueve caracteres, y cada terna corresponde a un “usuario” o grupo.

Ej: rwxr-xr–

Lo primero que tendríamos que hacer sería convertir, cada carácter, en un valor binario ¿Cómo? Sustituyendo los caracteres por 1 y los guiones por 0

Ej: rwxr-xr– sería 111101100

Después tendríamos que separar la cifra en grupos de 3:

111101100 a 111 101 100

Utilizando la tabla de conversión podemos saber con qué cifra corresponde cada trío

BinarioOctal
0000
0011
0102
0113
1004
1015
1106
1117

Por tanto:

111 -> 7

101 -> 5

100 -> 4

Si te ha resultado complejo, no te compliques y sigue el primer ejemplo.


Avatar de Edi Vieito

Comentarios

2 respuestas

  1. Avatar de Laride
    Laride

    Hola. Gracias por la información. No me queda claro cómo quitar los permisos y dejar carpetas y archivos sin permisos para que otras personas los manipulen. Me gusta desde terminal. Le agradezco su colaboración.

    1. Avatar de Edi Vieito

      Hola Laride,

      Si quieres quitar todos los permisos de una carpeta /home/usuario/laride y todos los archivos que contiene la instrucción sería:
      chmod -R 700 /home/usuario/laride
      – R: Aplica los cambios de permisos recursivamente a todos los archivos y subdirectorios dentro de la carpeta especificada.
      – 700: El valor numérico que establece los permisos:
      – 7 (propietario): Permisos de lectura (4), escritura (2) y ejecución (1).
      – 0 (grupo): Sin permisos.
      – 0 (otros): Sin permisos.
      Este comando y los permisos resultantes aseguran que solo el propietario pueda leer, escribir y ejecutar los archivos y directorios en la carpeta especificada. Esperamos haberte ayudado. 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Newsletter

Suscríbete y recibe periódicamente consejos muy útiles para tu web y ecommerce 🙂 Además, te regalamos
3 guías
: Digitalización, WordPress y Ciberseguridad.

Conviértete en afiliado

Gana dinero recomendando dinahosting a todo el mundo.