Comandos Linux para modificar Permisos en Ficheros y Directorios

Comandos para ver los permisos y modificarlos. Modificar permisos de directorios y archivos para el usuario propietario, el grupo al que pertenece y permisos para otros usuarios

Modificar Permisos en Archivos y Directorios

Modificar Permisos en Archivos y Directorios

Mostrar Permisos

Antes de cambiar los permisos es buena idea conocer cuales están afectando actualmente al archivo o directorio que tenemos en nuestro objetivo para que disponga de ciertos permisos o limitar estos. Tal vez esté como nosotros necesitemos y no necesite cambio alguno o simplemente ver como cambiarlo de forma más simple.

  • ls -Al → Muestra en forma de lista todos los archivos y directorios hasta los ocultos y sus permisos
  • ls -lh → Mostrar permisos
  • ls /tmp | pr -T5 -W$COLUMNS → Dividir la terminal en 5 columnas
  • find / -perm -u+s → Visualizar todos los ficheros del sistema con SUID configurado, podemos adaptar “/” por nuestro directorio elegido

Cambiar Permisos

Una vez hemos visto que permisos corresponden con nuestro directorio o archivo procederemos a cambiarlos añadiendo, quitando o estableciéndolos todos.

Existe una gran variedad de opciones y combinaciones para hacerlo, esto es así con la idea de que puedas usar en cada caso la manera más rápida de hacerlo ya que, si por ejemplo solo necesitas añadir lectura y dejar el resto de permisos igual no sería óptimo hacerlo (al hacerlo recursivamente sobre muchos archivos puede influir en el tiempo y rendimiento)

Representación simbólica para chmod

A continuación os muestro una lista de los símbolos que se usarán para el comando que nos permitirá cambiar los permisos, chmod

Carácter Acción
u Propietario
g Grupo
o Otros
a Todos (all). Equivale a usar “ugo”
Símbolo para retirar permisos
= Símbolo para dejar permisos igual
+ Símbolo para añadir permisos
r Lectura
w Escritura
x Ejecución

Representación numérica para chmod

Carácter Acción
4 Lectura
2 Escritura
1 Ejecución

Listado de Opciones interesantes con chmod

Ahora os muestro un listado de opciones interesantes con distintas formas de cambiar permisos:

  • chmod ugo+rwx directory1 → Colocar permisos de lectura (r), escritura (w) y ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio ‘directory1’
  • chmod go-rwx directory1 → Quitar permiso de lectura (r), escritura (w) y (x) ejecución al grupo (g) y otros (o) sobre el directorio ‘directory1’
  • chmod u+s /bin/file1 → Colocar el bit SUID en un fichero binario. El usuario que corriendo ese fichero adquiere los mismos privilegios como dueño.
  • chmod u-s /bin/file1 → Deshabilitar el bit SUID en un fichero binario
  • chmod g+s /home/public → Colocar un bit SGID en un directorio –similar al SUID pero por directorio
  • chmod g-s /home/public → Desabilitar un bit SGID en un directorio
  • chmod o+t /home/public → Colocar un bit STIKY en un directorio. Permite el borrado de ficheros solamente a los dueños legítimos
  • chmod o-t /home/public → Desabilitar un bit STIKY en un directorio
  • chgrp group1 file1 → Cambiar grupo de ficheros

Cambiar Permisos por defecto con umask

El comando umask permite cambiar la máscara de permisos de creación de archivos, se aplica la regla del formato octal para construir la máscara teniendo en cuenta que los valores que el valor que se asigna se resta al valor 777 y será el permiso aplicado.

Algunos ejemolos:

Comando Función
umask Al aplicarlo sin asignar máscara muestra por pantalla el estado actual
umask 133 archivo Asigna por defecto permiso a los archivos creados de 644 (rw-r–r–)
umask 666 archivo Asigna a los archivos creados 111 (x–x–x–)
umask 333 archivo Asigna a los archivos creados 444 (r–r–r–)

Cambiar Dueño con chown

Cambiar dueños no entra en un principio en el objetivo de esta entrada pero tiene una relación directa con este tema y me perecía interesante hacer alguna referencia sobre ello.

A continuación muestro de forma muy básica como cambiar dueños de archivos y directorios

  • chown user1 file1 → Cambiar el dueño de un fichero
  • chown -R user1 directory1 → Cambiar el propietario de un directorio y de todos los ficheros y directorios contenidos dentro.
  • chown user1:group1 file1 → Cambiar usuario y el grupo propietario de un fichero.

Comandos Linux

Raúl Caro Pastorino

Informático, técnico en sistemas, redes, baja tensión (electricidad) y desarrollador de aplicaciones WEB. Soy un apasionado por GNU/LINUX y el software libre en general desde prácticamente el año 2001-2003 que comencé. Intento usar y trabajar siempre con código libre o abierto de forma profesional. Me apasiona la programación, la micro-electrónica, el diseño gráfico y edición multimedia. Fan de Raspberry y arduino. Programo en bash, python, php y javascript principalmente. Repositorios de código con git: https://gitlab.com/fryntiz https://github.com/fryntiz

Un comentario:

  1. Muy buena entrada ha conseguido aclararne algunas cosas y se queda en marcadores mil gracias!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.