Cargando



CHMOD 777, 755, 655, 644 y más permisos archivos Linux

Tutorial para saber permisos Linux con el comando CHMOD 777, CHMOD 755, CHMOD 644 y otros como comando CHOWN o comando CHATTR.


mar 02 2020 12:16
Avanzado
Total de Apartados : 7

Una de las formas más prácticas como podemos proteger nuestros archivos y carpetas en entornos Linux es estableciendo de manera adecuada los permisos para que aquellas personas que acceden al sistema puedan o no editar estos archivos. Todos estos valores los podemos establecer de forma sencilla y definiendo que alcance puede tener un usuario en una carpeta o archivo Linux, puede ser lectura o escritura, y así mantener la integridad de nuestros archivos. Los permisos Linux son importantes para poder proteger archivos y carpetas Linux en los diferentes usuarios. Lo mejor de todo es que podemos gestionar los permisos Linux con chmod y con chmod permisos usando los atributos que incorpora. Uno de la sintaxis más usada es la de Chmod 777 o Chmod 755 como uno de los comandos principales para dar permisos a usuarios concretos como usuario root Linux.

 

Los permisos con CHMOD Linux son los que nos dan acceso a archivos y carpetas. CHMOD es el encargado de gestión de permisos de todo esto. Muchos los usáis en los servidores web entre otros debido a que es una de las funciones más útiles y efectivas a la hora de realizar y gestionar permisos en todos los ficheros y carpetas del servidor o equipo Linux.

 

Tutorial para usar el comando find y buscar o eliminar archivos con filtros en Linux con ejemplos en Ubuntu.

 

El comando CHMOD nos da la posibilidad de poder cambiar los permisos de los archivos y carpetas de la máquina con Linux. Os detallamos en este tutorial algunos ejemplos. Se suele saber que el uso de CHMOD es lo mejor para pHp entre otros lenguajes, por eso es el uso de servidores Linux entre otras características. Para que entendáis el funcionamiento de estos comandos lo primero que debéis saber es cómo funciona.

 

Hoy analizaremos cómo establecer permisos Linux con diferentes comandos y parámetros. Para este caso usaremos un archivo en Debian pero el procedimiento es similar en cualquier distro de Linux.

 

 


1. Permisos en Linux


En todos los sistemas Unix existe un mecanismo que nos permite, como administradores, definir los tipos de acceso que se tendrá a un archivo o carpeta particular.
Dentro de este mecanismo de control de los entornos Unix existen dos tipos de variables que debemos conocer y entender su función:

 

Clases
Estas determinan que usuarios pueden acceder al archivo o carpeta

 

Permisos
Estos determinan la tarea que pueden ejecutar los usuarios autorizados en dichos archivos

 

Ahora, cuando damos clic derecho sobre un archivo o carpeta y nos dirigimos a la opción Propiedades podemos ver lo siguiente:

 

permisos-linux.png

 

Dentro de este esquema identificamos tres (3) tipos de clases:

 

Propietario
Es la persona que ha creado el archivo o la carpeta

 

Grupo
Dentro de este parámetro definiremos el grupo de usuarios que tendrán acceso al archivo o carpeta

 

Otros
Dentro de este parámetro están incluidos los usuarios particulares

Ahora contamos con tres tipos de permisos de edición de nuestros archivos o carpetas, éstos son:

 

Lectura
Esta opción permite que el usuario vea el archivo pero no le da la potestad de realizar cambios en el mismo lo cual nos da un alto nivel de seguridad ya que no podrán editarlo, copiarlo o borrarlo.

 

Escritura
Al otorgar este permiso permitimos que los usuarios que acceden al archivo o carpeta puedan realizar sobre el mismo cualquier tipo de edición, Copiar, cortar, borrar) lo cual pone en riesgo la integridad del mismo.

 

Ejecutar
Al activar esta opción, la cual viene por defecto deshabilitada, podemos ejecutar archivos.

 

Comprendiendo esto podemos establecer combinaciones entre los permisos y las clases para determinar el mejor nivel de seguridad para nuestros archivos.

 

 


2. Permisos en Linux y sus códigos de error


Ahora llega uno de los puntos que como administradores o personal involucrado en el área de IT debemos conocer y es la identificación de los errores que surgen al momento en que un usuario intenta tomar alguna acción en un archivo, por ejemplo el famoso 777.

 

En los entornos Unix básicamente cada permiso tiene el siguiente valor:

 

  • Lectura: 4
  • Escritura: 2
  • Ejecución: 1

 

Debemos aprender a jugar con estos números de la siguiente manera, esto con el fin de hacer nuestra experiencia de Linux la mejor.

 

Si deseamos establecer un permiso de escritura usaremos el 6 (4 + 2= Lectura + Escritura)

 

Si deseamos que un usuario pueda ejecutar usaremos el 7 (4 + 2 + 1= Lectura + Escritura + Ejecución)

 

Ahora contamos con la siguiente tabla de valores:

 

Tabla de valores permisos Linux

 

  • 0: Sin permisos
  • 1: Ejecución
  • 2: Escritura
  • 3: Lectura y escritura
  • 4: Lectura
  • 5: Lectura y ejecución
  • 6: Lectura y escritura
  • 7: Lectura, escritura y ejecución

 

 

 


3. Permisos en Linux: chmod 777, chmod 644, chmod 755, chmod 700, chmod 666


Los tipos de permisos más comunes, o su combinación, son los siguiente:

 

666 ( RW / RW / RW)
Esta opción permite que todos los usuarios puedan leer y escribir en un archivo.

 

777 ( RWX / RWX /RWX)
Esta opción permite que todos los usuarios puedan leer, escribir y ejecutar en el archivo o carpeta

 

755 (RWX / RW / RW)
Con este permiso el propietario del archivo puede leer, escribir y ejecutar en el archivo mientras que los demás leer y escribir en el archivo mas no ejecutar.

 

644 (RW / R / R)

Con este permiso el propietario puede leer y escribir en el archivo mientras los demás solo pueden leer.

 

700 (RWX /---)
Con este permiso el propietario tiene el control total del archivo mientras que los demás usuarios no tendrán acceso de ningún tipo al archivo.

 

Como vemos contamos con diferentes opciones para establecer los respectivos permisos en Linux.

 

 


4. CHMOD permisos a un archivo o carpeta


El procedimiento para establecer el permiso es muy sencillo. Basta con ir a la terminal y ejecutar la siguiente sintaxis:
chmod Tipo de permiso Ruta_Archivo
Por ejemplo:
chmod 666 /home/Solvetic/Solvetic.jpg
Contamos con estas interesantes opciones para establecer los mejores parámetros de seguridad en nuestros archivos y carpetas.

 

Viéndolo en sistemas Linux con letras veríais algo como esto en temas de permisos Linux al completo:

0 = --- = sin acceso
1 = --x = ejecución
2 = -w- = escritura
3 = -wx = escritura y ejecución
4 = r-- = lectura
5 = r-x = lectura y ejecución
6 = rw- = lectura y escritura
7 = rwx = lectura, escritura y ejecución
Si lo que queremos es dar varios permisos, lo que debemos hacer es sumarlos.

 

Chmod 777
Si por ejemplo usamos el comando chmod 777:
chmod 777
Estamos diciendo que les damos a los 3 tipos de usuarios el máximo permiso, dándoles lectura, ejecución y escritura, y es de haber sumado 4+2+1 por eso usamos tres veces 7. Si queremos dar permisos de lectura escritura pues sería 4+2 = 6 si lo que queremos es sólo dar lectura sería 4. Si lo que queremos es dar lectura y ejecución sería de sumar 4 + 1 = 5. De ahí las diferentes combinaciones.

 

 

Chmod 755
chmod 755
En este caso chmod 755 estamos dando permiso de lectura y ejecución (4+1) a todos los usuarios excepto al propietario que lo tiene completo (lectura, escritura, ejecución 4+2+1).

 

 

Chmod 666
Este tipo de comando chmod lo que realiza es dar permisos de lectura y escritura a todos, excepto ejecución (4+2). Todos pueden acceder al archivo, leer su contenido y modificarlo.

 

Chmod 644
Este chmod 644 se suele utilizar para no permitr la escritura a nadie que no sea el propietario. (755 es similar, lectura y ejecución y para propietario todos los permisos) Este chmod 644 más restrictivo (sólo lectura) y (lecura, escritura para propietario).

 

Estos comandos los podéis realizar por comandos, si es un servidor local, pues logándote y haciéndolos de forma directa, si es remoto, os podéis conectar con este programa para que os aparezca la ventana del servidor Linux (como si estuvierais en local). O una otra opción es descargar gratis y utilizar el programa Filezilla que nos frece realizar estos cambios de permisos de forma gráfica (más fácil).

 

Os enseñamos en este caso un servidor Linux que conectamos de forma remota con Filezilla y aparece los permisos de forma gráfica tanto de los archivos como de las carpetas.

 

permisos-filezilla.png

 

Si queremos cambiarlos pulsamos encima de la carpeta o archivo con el botón derecho y aparecerá la opción de Permisos del archivo, al pulsarlo aparece la ventana donde podemos cambiarlos.

 

permisos-filezilla-2.png

 

Esperamos que os haya servido para entender el funcionamiento de los permisos en sistemas Linux / Unix. Pasemos a los otros 2 comandos para gestión de permisos.

 

 


5. Cómo se usa el comando CHOWN en linux


Dentro de las diversas tareas cotidianas que podemos implementar en ambientes Linux está la de establecer un nuevo propietario de un archivo o carpeta ya sea por temas de seguridad, organización o administración.
Una de las formas más prácticas que tenemos en Linux para este fin es el uso del comando chown y hoy veremos cómo podemos implementarlo y sacar el máximo provecho de este importante comando.

 

Qué es Chown
Chown (Change Owner – Cambiar Propietario) es un comando que nos ofrece la posibilidad de modificar el dueño o propietario de un archivo o carpeta en el sistema de archivos.

 

Este comando forma parte de la suite coreutils la cual viene incluida por defecto en todas las distros de Linux y usando Chown podemos especificar el nuevo propietario bien sea por su nombre o por la identidad del usuario dentro del sistema (UID).

 

Parámetros de Chown
Podemos definir una serie de parámetros para el uso de Chown los cuales son:

 

  • -c: Este parámetro nos permite definir los cambios que tendrá el archivo.
  • -R: Cambia de manera descendente el propietario de los directorios junto a su contenido.
  • -v: (verbose) Nos despliega una salida más descriptiva de la información.
  • --version: Nos despliega en pantalla la versión de Chown.
  • --dereference: Este parámetro actúa sobre valores simbólicos en lugar de hacerlo en el destino.
  • --reference: este parámetro cambia el propietario de un archivo tomando como referencia el propietario de otro archivo.
  • -h: Cuando se trata de enlaces simbólicos, cambia el propietario del destino en lugar del enlace propiamente dicho.

 

La sintaxis que debemos tener en cuanta cuando usamos Chown es la siguiente:
chown (opciones) usuario(:grupo) archivo(s) o directorio(s)

 

Para este estudio usaremos Ubuntu.

 

A continuación, veremos algunos ejemplos de cómo usar Chown.

 

Modificar el propietario de un archivo
Esta es una de las tareas básicas que tenemos con el comando chown y en primer lugar debemos validar cuál es propietario actual del archivo, para ello usamos la sintaxis:
ls -lart Nombre_archivo
Hemos creado un archivo llamado solvetic.txt por lo cual ingresamos lo siguiente:
ls -lart solvetic.txt
Esto desplegará el propietario asó como los permisos que tiene actualmente y la fecha de creación.

 

Ahora estableceremos que el propietario de ese archivo será root, para ello ingresamos lo siguiente:

chown root solvetic.txt
Ahora ejecutamos de nuevo ls -lart solvetic.txt y podemos ver el nuevo propietario:

 

 

 

chown-linux.png

 

 

Modificando el grupo de un archivo
Podemos establecer un nuevo grupo para nuestros archivos usando chown, para ello debemos realizar el siguiente proceso:
Usar el comando ls – l (Nombre Archivo) para visualizar el grupo actual del archivo.
En este caso usaremos ls -l solvetic.txt. A continuación, usaremos la siguiente sintaxis para la respectiva modificación:
chown :soporte solvetic.txt
(Soporte es el nombre del nuevo grupo).

 

 

 

 

chown-linux-2.png

 

 

Ver la versión actual de Chown
Para ello basta con ingresar lo siguiente:
chown –versión

chown-linux-3.png

 

 

Modificar propietario de carpeta y todo lo que hay dentro de ella
Para esta tarea usaremos la siguiente sintaxis:
chown -R usuario carpeta
En este caso haremos que el usuario root sea el dueño de la carpeta, en este caso ingresamos lo siguiente:
chown -R root Solvetic

 

Cambiar grupo si el usuario pertenece a un grupo determinado
Podemos establecer que se modifique el grupo cuando el archivo está dentro de un grupo ya determinado.

 

Por ejemplo, si el archivo solvetic.txt está dentro del grupo solvetic el nuevo grupo se llamará soporte. Para ello usaremos el parámetro –from

 

En primer lugar, usaremos ls -l solvetic.txt para visualizar el grupo al cual pertenece el archivo. Posteriormente usaremos la sintaxis –from:grupo actual) : (nuevo grupo) de este modo indicamos que si el archivo pertenece, en este caso, al grupo Solvetic pase a ser del grupo soporte.

 

chown-linux-4.png

 

 

Copiar el propietario de un archivo a otro
Podemos copiar los parámetros que tiene un archivo a otro usando la opción –reference

 

En este caso tenemos dos archivos:

 

  • solvetic.txt = cuyo propietario es solvetic
  • pruebas.txt = cuyo propietario es root.

 

Usaremos la sintaxis:

chown –reference=solvetic.txt pruebas.txt
Para que el propietario de pruebas.txt sea el mismo de solvetic.txt

 

 

 

 

chown-linux-5.png

 

 

Vemos como chown nos ofrece diversas alternativas para la gestión de los propietarios en los diferentes archivos y carpetas en ambientes Linux de forma sencilla y confiable.

 

 


6. Cómo usar el comando CHATTR

 

Dentro de las funciones que, como administradores de sistemas, personal de soporte o personal asociado al área de TI existe una muy importante que es la de modificar los atributos de una carpeta o archivo para incrementar sus niveles de seguridad, y el resultado que podemos obtener será el siguiente:

 

  • Evitar accesos no autorizados a los archivos o carpetas
  • Impedir la edición de los archivos
  • Evitar el robo de información
  • Llevar un control específico sobre las carpetas y archivos que están almacenados en el equipo

 

Aunque existen diversas formas para hacer esto hoy veremos un comando que tiene una amplia variedad de opciones para modificar los atributos en cualquier distro de Linux: Chattr

 

Qué es Chattr
Chattr (Change Attribute – Cambiar Atributos) es un comando que podemos implementar de manera sencilla con diversos parámetros que nos brindarán la posibilidad de proteger los archivos de borrados accidentales o de cambios involuntarios.

 

Una de las grandes ventajas de chattr es que protege los archivos incluso si la persona que intenta borrarlos tiene permisos de root.

 

Todos los atributos que pueden ser implementados con chattr son soportados por los sistemas nativos de Linux como son ext2, ext3, ext4 y btfrs lo cual permite que esta utilidad tenga un alcance mucho mayor de seguridad.

 

La sintaxis general para el uso de chattr es la siguiente:

chattr (operador) (atributo) (archivo)
Donde tendríamos que cambiar los datos entre paréntesis por lo que deseemos implementar. Lo veremos en los ejemplos que vienen a continuación.

 

 

Parámetros disponibles con Chattr

Como vemos debemos especificar ciertos parámetros que nos permiten definir el nivel de seguridad que tendrán nuestros archivos, son los siguientes por categoría:

 

Operadores Chattr

 

  • +: Permite que sean añadidos los atributos indicados a los atributos ya existentes en el archivo.
  • -: Permite que se eliminen los atributos indicados a los atributos.
  • =: Permite que los atributos indicados reemplacen los atributos existentes en el archivo.

 

Opciones Chattr

 

  • -V: Nos permite obtener una salida del comando chattr más descriptiva incluyendo la versión del programa.
  • -R: Esta opción cambia de manera descendente los atributos de los directorios y sus contenidos.
  • -v: Nos permite visualizar la versión del programa.

 

 

Atributos Chattr

 

  • a: Permite que el archivo solo pueda abrirse en modo de adjuntar para escritura.
  • A: Permite que la fecha del último acceso o atime no sea modificada.
  • c: Permite que el archivo se comprima de forma automática.
  • d: Permite definir que el archivo seleccionado no sea candidato para el respaldo al usar la herramienta dump.
  • D: Cuando hace referencia a un directorio permite que los datos sean escritos de forma sincrónica en el disco.
  • e: hace referencia a que el archivo o carpeta usa extensiones (extents) usadas para la cartografía de bloques.
  • j: Es usado en los sistemas de archivos ext3 y ext4 y permite establecer que el archivo sea escrito en el registro por diario cuando lo hemos montado con las opciones data=ordered o data=writeback.
  • i: Permite que el archivo sea inmutable, es decir, que pueda ser borrado o editado.
  • S: Indica que los cambios realizados en el archivo serán escritos de forma sincrónica en el disco.
  • s: Con este atributo los bloques usados en el disco duro serán escritos con ceros (0).
  • u: Al establecer este atributo cuando un archivo es eliminado su contenido queda almacenado para una posterior recuperación.

 

 

Chattr Linux cómo usar en Ubuntu

Ahora veamos ejemplos prácticos sobre cómo usar el comando chattr en las distros de Linux, para este caso usaremos Ubuntu.

 

Hemos creado una carpeta llamada Solvetic y un archivo llamado pruebas.txt. Si deseamos proteger estos archivos usaremos la siguiente sintaxis (Usaremos sudo para que tenga los privilegios de superusuario).

sudo chattr +i Solvetic/ prueba.txt

chattr-linux-2.png

 

Como vemos, aunque no se ha desplegado información, los cambios han sido procesados.

 

 

Ver atributos Chattr

Para comprobar los atributos que hemos implementado usaremos lsattr y veremos lo siguiente:

 

chattr-linux-3.png

 

Si intentamos borrar el archivo pruebas.txt, siendo superusuario, veremos que no es posible, usaremos la siguiente sintaxis:

sudo rm prueba.txt

chattr-linux-4.png

 

 

Establecer valores originales Chattr

SI deseamos que nuestros archivos no tengan los atributos de chattr usaremos la siguiente sintaxis:
sudo chattr -i Nombre_archivo
En nuestro ejemplo sería lo siguiente:
sudo chattr -i Solvetic/ prueba.txt
Ahora podemos intentar borrar el archive y veremos que ya es posible debido a que hemos eliminado los atributos:

 

 

 

chattr-linux-5.png

 

Del mismo modo podemos proteger archivos que son delicados para la óptima función del sistema como, por ejemplo:

/etc/passwd y /etc/shadow files
Para proteger estos archivos debemos ingresar lo siguiente:
sudo chattr +i /etc/passwd
sudo chattr +i /etc/shadow files
Otro ejemplo de cómo podemos usar chart en Linux es usar el parámetro a el cual nos permite abrir el archivo en modo de adjuntar, para ello hemos creado un archivo llamado solvetic.txt

 

Posteriormente usaremos el comando:

sudo chartt +a Solvetic.txt
Para establecer este parámetro al archivo.

 

Podemos ver los atributos del archivo usando lsattr.

 

Ahora intentamos editar algo en el archivo usado el comando echo y veremos que se despliega el mensaje Operación no permitida. Si ahora usamos los símbolos >> podremos adjuntar algo al texto.

 

chattr-linux-6.png

 

De este modo tenemos diversas opciones usando chattr en Linux y brindar parámetros de seguridad adicionales para nuestros archivos y carpetas más importantes usando alguno de los atributos que nos ofrece chattr.

 

 


7. Permisos CHMOD: bloquear USB Linux


Como hemos visto Chmod es un comando interesante y fácil de usar a la hora de otorgar permisos a archivos y carpetas. Además de ello si estamos gestionando equipos en entornos de empresa, también vendría bien controlar el bloqueo de USB para evitar accesos indeseados a medios extraíbles. Para ello utilzaremos chmod permisos de la siguiente forma.

 

Hay que reseñar que los USB se montan en la ruta /media/ o bien en la ruta /run/media/ si nuestra distro usa systemd. Partiendo de ello lo que haremos será cambiar los permisos de esas rutas para que solo el usuario root pueda acceder.

 

Para ello ejecutaremos el comando chmod de la siguiente forma según corresponda como hemos dicho. Usamos chmod 700 para que el propietario tenga todos los permisos, pero el resto de usuarios no pueda acceder.

sudo chmod 700 /media/

sudo chmod 700 /run/media/

 

 

Con este proceso haremos que la unidad sí pueda ser montada pero el usuario no recibirá notificación de ello ni podrá acceder a su contenido. Solamente el usuario root tendrá permiso de ello.

 

Como hemos visto tenemos un manual con permisos Linux donde podemos gestionar el nivel de privacidad de archivos en Linux. El principal comando a destacar es el de Chmod permisos con los cuales configurar nuestros archivos y carpetas.

 

Te mostramos cómo utilizar el comando chown de Linux para cambiar el propietario de una carpeta o fichero


¿Te ayudó este Tutorial?


3 Comentarios


Armando Goman
nov 20 2016 21:09

Super útil y completo para entender bien los permisos, las páginas no lo enseñan tan claro. Yo lo conocía pero conozco a unos cuantos que me lo van a agradecer.

 

saludos.

Muy buen recopilatorio para entender los permisos de carpetas o archivos o usuarios en Linux. gracias.

Hola. Tengo una duda. Por favor. Me estoy iniciando y dudo en una cosa
Por qué con los permisos 755 son rwx-rw-rw. No debería ser rwx-rx-rx ?. Un saludo a todos
No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X