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
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.
Muy buena entrada ha conseguido aclararne algunas cosas y se queda en marcadores mil gracias!