Cambiar permisos de archivos y directorios con chmod

Posted on Actualizado enn

Chmod segun Wikipedia:

“chmod (“change mode”, cambiar modo en idioma inglés) es una llamada al sistema y su comando asociado en el sistema operativo UNIX (estandarizados en POSIX y otros estándares) que permite cambiar los permisos de acceso de un fichero o directorio.”

Es una aplicacion que nos permite cambiar permisos referentes a lectura, escritura y ejecucion de archivos o directorios.

La estructura del comando es el siguiente:

Las opciones del comando chmod se especifica del siguiente modo:

$ chmod [modificadores] permisos fichero/directorio

modificadores es opcional, y puede tomar los valores:

  • f: no visualiza los posibles mensajes de error que puedan ocurrir debido a conflictos en la asignación de permisos.
  • v: lista los ficheros y directorios a los que se les va aplicando el comando a medida que el mismo se ejecuta
  • h:
  • R: aplica el comando chmod recursivamente a todos los ficheros y de los subdirectorios.
  • H:
  • L:
  • P:
  • C: igual a -v con excepción que solo lista los ficheros modificados.
  • E:

Hay 3 atributos básicos para archivos simples: lectura, escritura y ejecutar.

  • Permiso de lectura (read)  Si tienes permiso de lectura de un archivo, puedes ver su contenido.
  • Permiso de escritura (write)  Si tienes permiso de escritura de un archivo, puedes modificar el archivo. Puedes agregar, sobrescribir o borrar su contenido.
  • Permiso de ejecución (execute) Si el archivo tiene permiso de ejecución, entonces puedes decirle al sistema operativo que lo ejecute como si fuera un programa. Si es un programa llamado “foo” lo podremos ejecutar como cualquier comando.

O un script (interprete) que necesita permiso de lectura y ejecución, un programa compilado solo necesita ser lectura.

Los caracteres atribuidos a los permisos son:

  • r quiere decir escritura y viene de Read
  • w quiere decir lectura y viene de Write
  • x quiere decir ejecución y viene de eXecute

Usando chmod para cambiar los permisos
chmod (change mode) es el comando utilizado para cambiar permisos, se pueden agregar o remover permisos a uno o mas archivos con + (mas) o – (menos)

Si quieres prevenirte de modificar un archivo importante, simplemente quita el permiso de escritura en tu “archivo” con el comando chmod

$ chmod -w tuArchivo
si quieres hacer un script ejecutable, escribe

$ chmod +x tuScript
si quieres remover o agregar todos los atributos a la vez

$ chmod -rwx archivo
$ chmod +rwx archivo
también puedes usar el signo = (igual) para establecer los permisos en una combinación exacta, este comando remueve los permisos de escritura y ejecución dejando solo el de lectura

$ chmod =r archivo
[warn]Cuidado con editar los permisos de tus archivos, si los editas no olvides dejarlos como estaban originalmente[/warn]

Clases de usuarios

Los permisos de sistemas UNIX se dividen en cuatro clases, conocidas como usuario, grupo, otros y todos (con frecuencia abreviado UGOA por sus siglas en inglés).

Por lo tanto, las clases de usuarios a los cuales se les puede asignar los permisos básicos anteriormente mencionados son:

  • u – dueño: dueño del fichero o directorio
  • g – grupo: grupo al que pertenece el fichero
  • o – otros: todos los demás usuarios que no son el dueño ni del grupo
  • a – todos: incluye al dueño, al grupo y a otros

Los permisos efectivos aplicados a un determinado usuario en relación a un fichero se determinan en un orden lógico de precedencia. Por ejemplo, el usuario propietario del fichero tendrá los permisos efectivos dados a la clase de usuario, sin importar los asignados a la clase de grupo o a la clase de otros.

Asignación de permisos

Existen 2 formas o modos de asignar los permisos a los usuarios:

Modo octal

Como resultado de la combinación de los tres tipos de permisos (lectura, escritura y ejecución), con las tres clases de usuarios (dueño, grupo y otros), se obtiene 2^3=8 permisos en total que pueden ser asignados o denegados de forma independiente.

La base 8 se utiliza habitualmente para que exista un dígito por cada combinación de permisos (un bit a modo de bandera por cada permiso, con valor 1 ó 0 según el permiso esté concedido o denegado).

Así, las posibles combinaciones se resumen en números octales de tres dígitos del 000 al 777, cada uno de los cuales permite establecer un tipo de permiso distinto a cada clase de usuario:

El primer dígito establece el tipo de permiso deseado al dueño; el segundo al grupo; y el tercero al resto de los usuarios.

Screenshot at 2016-06-19 22:52:09
Por ejemplo:

  • chmod 777 archivo.html # Si quieres dar todos los permisos todos los archivos de un directorio.
  • chmod 766 file.txt           # brinda acceso total al dueño y lectura y escritura a los demás
  • chmod 770 file.txt          # brinda acceso total al dueño y al grupo y elimina todos los permisos a los demás usuarios
  • chmod 635 file.txt          # Permite lectura y escritura al dueño, escritura y ejecución al grupo, y lectura y ejecución al resto
  • chmod 777                      # Si quieres dar todos los permisos todos los archivos de un directorio.
  • chmod -R 777                # Si quieres dar todos los permisos a todos los archivos de la arborescencia de directorios harías esto:

Modo carácter

Posee 3 modificadores que permiten realizar la tarea:

  • “+” – añade un modo
  • “–” – elimina un modo
  • “=” – específica un modo (sobrescribiendo el modo anterior)

Por ejemplo:

chmod +r arch.txt             # agrega permisos de lectura a todos los usuarios(solo a algunos elegidos previamente)
chmod u+w arch.txt          # agrega permisos de escritura al dueño
chmod –x arch.txt             # elimina el permiso de ejecución a todos los usuarios
chmod u=rw,go= arch.txt # establece los permisos de lectura y escritura al dueño y elimina todos los permisos a los demás usuarios

 

Espero le sirva a alguien, a su orden Eduar Rondon

 

Fuentes:

https://es.wikipedia.org/wiki/Chmod

http://blog.desdelinux.net/permisos-basicos-en-gnulinux-con-chmod/

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s