Esta entrada de Comandos de GNU/Linux es exclusivamente sobre el cambio de permisos, propietario y grupo en archivos y carpetas. Debido a su complejidad y al contrario que otras entadas, voy a explicarlo con detenimiento para evitar confusiones y problemas futuros, sobre todo con los permisos.
Tipos de permisos
Existes tres tipos de permisos y dependiendo de si es un archivo o una carpeta se comporta de la siguiente forma:
- Lectura (r): Archivos: ver su contenido. Carpetas: solo permite ver el nombre de lso archivos que contiene.
- Escritura (w): Archivos: modificar el contenido del archivo, renombrarlo o eliminarlo. Carpetas: agregar, renombrar o eliminar archivos.
- Ejecucion (x): Archivos: ejecutar el archivo. Carpetas: acceder a sus subcarpetar pero no ver su contenido.
Ademas estos permisos pueden afectar a cuatro clases:
- Propietario (u): usuario al que pertenece el archivo o carpeta. Solo hay un propietario.
- Grupo (g): grupo al que pertenece el archivo o carpeta. Cualquier usuario que pertenezca a este mismo grupo.
- Otros (o): cualquier usuario que no sea el propietario o pertenezca al grupo.
- Todos (a): el conjunto de los anteriores.
Cambio de propietario y grupo
ls -lh ARCHIVO.txt
: muestra los permisos, el propietario y el grupo al que pertenece el ARCHIVO.txt.chown USUARIONUEVO ARCHIVO.txt
: cambia el propietario del ARCHIVO.txt al USUARIONUEVO.chgrp GRUPONUEVO ARCHIVO.txt
: cambia el grupo del ARCHIVO.txt al GRUPONUEVO.chown USUARIONUEVO:GRUPONUEVO ARCHIVO.txt
: cambia tanto el propietario como el grupo del ARCHIVO.txt al USUARIONUEVO y GRUPONUEVO.
Comprobar los permisos
Cuando vemos los permisos de un archivo con el comando
ls -lh
, nos debería mostrar algo como lo siguiente:drwxrw---- 2 USUARIO GRUPO 4,0K oct 30 17:53 CARPETA
-rw-r--r-- 1 USUARIO GRUPO 13K oct 30 17:53 ARCHIVO.txt
El conjunto de 10 letras corresponden a los permisos del archivo o carpeta, Siendo el primer carácter el correspondiente a determinar si es un directorio (d), y los siguientes en grupos de tres corresponden al propietario (u), al grupo (g) y al resto de usuarios (o). En cualquier caso, si un permiso no esta asignado aparece con -.
En el ejemplo anterior, la CARPETA (drwxrw——) tendría los siguientes permisos:
- d: para demarcar que es un directorio
- rwx: el propietario tiene los permisos de lectura, escritura y ejecución.
- rw-: el grupo solo tiene permisos de lectura y escritura.
- ---: el resto de usuario no tiene ningún permiso.
Y continuando con el ejemplo anterior, los permisos del ARCHIVO.txt* (-rw-r—r—) serian los siguientes:
- -: no es un directorio.
- rw-: el propietario solo tiene permisos de lectura y escritura.
- r--: el grupo solo tiene permisos de lectura.
- r--: el resto de usuario solo tiene permisos de lectura.
Estos permisos se pueden modificar usando caracteres o mediante números.
Cambiar permisos con caracteres
Permite tres modificadores + para añadir permisos, - para quitar permisos y = sustituye los permisos.
chmod +r ARCHIVO.txt
: añade el permiso de lectura a todos los usuarios.chmod -w ARCHIVO.txt
: quita el permiso de escritura a todos los usuarios.chmod u+r ARCHIVO.txt
: añade el permiso de escritura solo al propietario.chmod g-x ARCHIVO.txt
: quita el permiso se ejecución solo al grupo.chmod u=rwx ARCHIVO.txt
: asigna los permisos para el propietario, otorgando permisos de lectura, escritura y ejecución.chmod o= ARCHIVO.txt
: asigna los permisos para el resto de usuario, no dando ningún permiso.chmod u=rwx,g=rwx,o= ARCHIVO.txt
: asigna los permisos para el usuario y grupo como lectura, escritura y ejecución y para el resto de usuario sin ningún permiso.
Cambiar permisos con números
Se asigna mediante tres números, correspondiendo cada uno a una clase (propietario, grupo y resto de usuarios). Para calcular el numero correspondiente a cada clase, tan solo hay que sumar en relación a los permisos que queramos otorgar.
- 4: lectura.
- 2: escritura.
- 1: ejecución.
A modo de ejemplo, el numero 0 no daría ningún permiso, el numero 3 daría permisos de escritura y ejecución (2+1) y el numero 7 daría todos los permisos, lectura, escritura y ejecución (4+2+1).
chmod 400 ARCHIVO.txt
: el propietario tendría solo permisos de escritura y tanto el grupo como el resto de usuarios no tendrían permisos.chmod 760 ARCHIVO.txt
: el propietario tendría permisos de lectura, escritura y ejecucion, el grupo lectura y escritura y el resto de usuarios ningún permiso.chmod 777 ARCHIVO.txt
: cualquier usuario tendría permiso de lectura, escritura y ejecución.
No hay comentarios:
Publicar un comentario