Revista Tecnología

Comandos en GNU/Linux (VI) : Permisos en archivos y carpetas.

Publicado el 30 octubre 2014 por Ankou @DagdaMedia
Comandos en GNU/Linux (VI) : Permisos en archivos y carpetas.
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
" style="border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); display: block; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 1em; font-weight: bold; letter-spacing: -1px; margin: 0px; padding: 0.5em; word-break: break-all; word-wrap: break-word;">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).

Volver a la Portada de Logo Paperblog