Ubuntu Sur

“Las personas nacen libres e iguales en dignidad y derechos”

Chmod, asignando permisos en GNU/Linux

Posted by K|Ke on December 14th, 2007

GNU/Linux gestiona el acceso a archivos y carpetas basándose en los permisos que tenga cada uno de ellos. Estos permisos básicamente son tres: lectura, escritura ychmod.png ejecución.

Para poder revisar cuales son los permisos asignados a un determinado archivo o carpeta, también a grupos de archivos y carpetas, en consola podemos utilizar el comando ls -l, como ejemplo:

kike@albedo039:~$ ls -l
total 9098472
drwx—— 2 kike kike 4096 2007-11-09 21:47 amsn_received
-rw-r—– 1 kike kike 4507923 2007-12-12 01:53 solo por ti.mp3
drwxr-xr-x 2 kike kike 4096 2007-12-14 00:50 Desktop
drwxr-xr-x 4 kike kike 4096 2007-12-07 19:30 Documentos
drwxr-xr-x 4 kike kike 4096 2007-12-11 17:40 dvd
-rw-r–r– 1 kike kike 4583860224 2007-12-11 17:59 incendio_en_la_torre.iso
-rw-r—– 1 kike kike 7136164 2007-12-11 15:24 index.php

Los permisos que tiene cada archivo o carpeta los identificamos con las letras r lectura, w escritura y x ejecución. En el ejemplo podemos visualizar estos permisos.

Ahora veamos los modos de asignar los respectivos permisos, existen varios métodos para hacerlo, veremos la forma más habitual de hacerlo. Para ello utilizamos el comando chmod, el cual acepta tres modificadores para administrar los permisos definidos por estos signos:

signo – (menos) para quitar permisos, y
signo + (mas) para agregar permisos.

En consecuencia si nosotro hacemos lo siguiente:

$ sudo chmod +w solo_para_ti.mp3

le hemos agregado permisos de escritura al archivo solo_para_ti.mp3

si aplicamos el siguiente comando

$ sudo chmod -w solo_para_ti.mp3

le quitamos el permiso de escritura al mismo archivo.

con el comando

$ sudo chmod +xrw solo_para_ti.mp3

le hemos agregado todos los permisos al archivo, es decir, ejecución, lectura y escritura.

Este tipo de administración de los permisos, se han realizado en un modo general, es decir, no se ha especificado a quien se le han otorgado o quitado permisos. También se puede realizar una asignación al usuario dueño del archivo, grupo dueño del archivo, otros usuarios y para todos.

u: usuario dueño del archivo
g: grupo o dueño del archivo
o: otros usuarios
a: para todos

veamos ejemplos:

$ sudo chmod a+x solo_para_ti.mp3

con ello todos pueden ejecutar el archivo solo_para_ti.mp3

$ sudo chmod u+x solo_para_ti.mp3

solo el usuario dueño del archivo puede ejecutarlo

$ sudo chmod g+xrw solo_para_ti.mp3

el grupo dueño del archivo podrá ejecutar, leer y escribir el archivo.

$ sudo chmod ug+x solo_para_ti.mp3

el dueño y el grupo dueño podrá ejecutar el archivo.


USANDO EL METODO OCTAL

La otra forma bastante utilizada para administrar los permisos de archivos y carpetas en GNU/Linux, es el método octal.

Este método utiliza los números octales del siguiente modo:

000: ningún permiso
001: ejecución para el dueño del archivo
002: escritura para el dueño del archivo
004: lectura para el dueño del archivo
010: ejecución para el grupo dueño del archivo
020: escritura para el grupo dueño del archivo
040: lectura para el grupo dueño del archivo
100: ejecución para resto de usuarios
200: escritura para resto de usuarios
400: lectura para resto de usuarios

Bien, quizás es un poco complicado entender este método, pero no, realmente es fácil. Para asignar los permisos estos se suman conforme a la tabla, obteniéndose un solo número que definirá los permisos que tiene nuestro archivo o carpeta, por ejemplo:

Asignemos todos los permisos al archivo solo_para_ti.mp3 y para todos el resto de los usuarios.

$ sudo chmod 777 solo_para_ti.mp3

¿cómo es eso?

claro veamos dijimos que ejecución para el resto era 100, escritura para el resto era 200 y lectura para el resto era 400, por lo tanto.

ordenemos estos permisos

100
200
400
700 es la suma que queda para el resto

010
020
040
070 es la suma que queda para el grupo

001
002
004
007 es la suma que queda para el dueño del archivo

Entonces si digitamos el comando chmod 777 estamos asignando todos los permisos para todos los usuarios.

Si hacemos lo siguiente:

$ sudo chmod 660 solo_para_ti.mp3

El archivo tendrá para el dueño del archivo permisos de escritura y lectura, igual para el grupo y para el resto ningún permiso.

Entonces dentro de los tres dígitos el primero corresponde al dueño o propietario del archivo, el segundo dígito para el grupo y el último dígito para el resto de los usuarios.

777 usuario
777 grupo
777 resto de usuarios

Ok. pero está al revés? si, pero es solamente por el orden de los números octales, pero de acuerdo a la tabla anterior sabemos que el primer dígito es el usuario dueño, el segundo el grupo dueño del archivo y el último para el resto de los usuarios.

  • Share/Bookmark

Entradas relacionadas:

  1. Libro “Implementación de servidores con GNU/Linux”

8 Respuestas a “Chmod, asignando permisos en GNU/Linux”

  1. Ubuntu Sur » Blog Archive » Seguridad del sistema de archivos – Permisos en Linux Dice:

    [...] un tiempo que escribí unas entradas relacionadas con Usuarios y grupos en Linux y Chmod, asignando permisos en GNU/Linux, pues bien ahora quiero incorporar este artículo de mi gran amigo Fabián Pérez publicado en My [...]

  2. Pollux Blog » Seguridad del sistema de archivos – Permisos en Linux Dice:

    [...] un tiempo que escribí unas entradas relacionadas con Usuarios y grupos en Linux y Chmod, asignando permisos en GNU/Linux, pues bien ahora quiero incorporar este artículo de mi gran amigo Fabián Pérez publicado en My [...]

  3. Pollux Blog » Chmod, asignando permisos en GNU/Linux Dice:

    [...] Chmod, asignando permisos en GNU/Linux [...]

  4. Diego Dice:

    en el caso q tenga un servidor web hay que pagarle a 50 personas para q asignen los permisos archivo x archivo?? o es q algun inteligente de los desarrolladores de linux habra inventado un metodo mas facil??
    es algo q me gustaria saber… hace poco estoy con linux y realmente no entiendo porq es tan inaccesible
    lo q en windows se hace en 5 click aca tengo q estar 1 hora escribiendo t leyendome todo encima muchas veces fallan los metodos
    perdon pero tengo q preguntar porq tal vez yo todavia no encontre la forma rapida

  5. K|Ke Dice:

    Hola Diego, perdón pero no entendí la pregunta, si pudieras ser más específico en lo que necesitas.

    Saludos.

  6. Diego Dice:

    Hola K|Ke /*Gracias x la respuesta*/
    Concretamente el tema es q no puedo acceder a una pagina en mi pc por los permisos, y mucho menos instalar un wordpress o joomla
    ya q me niega el acceso y le doy todos los permisos posibles y consigo entrar pero no se puede instalar un wordpress, dice q es imposible escribir
    el archivo wp-config.
    paso a lo siguiente… lo completo manualmente con nombre de BD y lo demas vuelbo a intentar y ahora sorpresa… sale otro error pero ahora en
    el archivo wp-seting y asi sucesivamente.
    no se como se pueden desbloquear esos permisos?? para poder tener libertad ya q mi propia pc me niega accesos.
    /*Aver si ahora se entiende*/ Hay una manera de dar permisos generales?? y no archivo por archivo??
    Gracias…

  7. K|Ke Dice:

    Diego, cuando tu instalas wordpress en tu servidor, el instalador te va a ir pidiendo los permisos apropiados para cada archivo que deba manipular el instalador, esto es así y no va a ser de ningún modo diferente, debes ir dando permisos de escritura en los archivos necesarios. Ahora claro que debes tener paciencia, esto no es Windows y jamás será Windows, por lo que la seguridad es primordial ya que GNU/Linux es un sistema operativo diseñado preferencialmente para ser usado en redes.

    Paciencia y continúa con lo que te va pidiendo el instalador de WordPress y te darás cuenta que no tiene nada de complicado.

    Saludos.

  8. Diego Dice:

    ok k|ke
    tal vez ese sea el problema seguramente yo solo descomprimo el wordpress en la carpeta correspondiente directamente
    no por la terminal. gracias
    espero tener paciensia x ahora como sistema secundario hasta q lo entienda pero me resulta vastante interesante a pesar de las dificultades,
    aunq no dejp de pensar q es un sistema inaccesible para el comun de la gente ya q no todos son programadores ni conocen los lenguages de codigos jeje como yo… podrian inventar un boton que ejecute cada comando ese si seria el final de microsoft creo.
    gracias de nuevo

Deje una respuesta

XHTML: Usted puede usar estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>