No he podido hacer que esta calculadora aparezca en otro lugar más que en el principio. Es un muy sencillo plugin WP que hice para enmascarar el script en javascript desarrollado por Jeroen Vermeulen. Si lo quieres deja un comentario y si no, también. Como ves es un excelente juguete para practicar lo que aquí veremos.
NomikOS.-
Introducción
El comando chmod (change mode) permite asignar a un archivo o directorio distintos tipo de accesos –o permisos de acceso– a distintos tipos de usuarios.
1 2 3 4 5 6 7 8 9 10
| man chmod
NAME
chmod - change file mode bits
SYNOPSIS
chmod [OPTION ]... MODE [,MODE ]... FILE...
chmod [OPTION ]... OCTAL -MODE FILE...
chmod [OPTION ]... --reference =RFILE FILE...
# o sea basicamente el formato es:
chmod [opciones ] permisos archivo [s ] |
Tipos de permisos
Tenemos 3 tipos de permisos de acceso que pueden ser otorgados o revocados a cada archivo:
r read: lectura
w write: escritura –modificación, borrado, renombrado
x execute: ejecución –si es archivo, acceso si es directorio
Tipos de usuarios
Tenemos 4 tipo de usuarios: usuario, grupo, otros y todos.
u user: dueño del archivo
g group: grupo al que pertenece el archivo
o others: el resto de usuarios
a all: todos los usuarios
Opciones
Los más usados son:
R recursive: aplica el comando recursivamente a todos los archivos y subdirectorios de un directorio.
v verbose: informa de resultados por cada archivo procesado (no muy útil en verdad).
Recuerda que las opciones siempre se anteceden por un (y sólo un) guión (-). Por ejemplo:
chmod -vR ugo=rwx archivo
Operadores
Los permisos pueden ser otorgados de la siguiente manera. Luego veremos otra forma, la octal.
+ agrega permiso
- elimina permiso
= hace igual a (los ejemplos aclararán esto)
Ejemplos con notación literal
Para entender la diferencia entre = y +/- fíjate muy bien en los comentarios (nada más) y (y mantiene los demás)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| # en general haremos combinaciones: ugoa [operador] permisos
chmod u/g/o/a +/-/= r/w/x
# puedes definir varios accesos a varios archivos en un sólo paso
# separando por comas los permisos y por espacios los archivos
chmod u+rwx, go+rx, go-w archivo1 archivo2
# dueño lee, escribe y ejecuta (es decir, permite todo tipo de acceso)
chmod u=rwx archivo
# grupo lee y ejecuta (nada más)
# otros leen y escriben (nada más)
chmod g=rx, o=rw archivo
# dueño agrega permiso de escritura (y mantiene los demás)
# grupo agrega permisos de lectura y ejecución (y mantiene los demás)
# grupo elimina permisos de escritura (y mantiene los demás)
chmod u+w, g+rx, g-w archivo
# ahora dicho más sencillamente:
# grupo y otros sólo pueden ejecutar el archivo
# el dueño puede leerlo y ejecutarlo manteniendo otros permisos ya dados
chmod go=x, u+rx archivo |
Modo octal
Con lo ya visto puedes definir todos los tipos de permisos de una manera bastante representativa, verdad? Cuando ya tienes más experiencia buscas elegancia y eficiencia. Con el modo octal logras esto.
Le llamamos octal porque usa números en base 8: un modo de contar con el que podemos obtener todos los números (0 .. infinito) usando sólo los dígitos 0 a 7.
Solo recuerda esto. En una escala de 1 a 7:
Lo más preciado es poder leer un archivo. Le damos un 4.
Después, es poder escribir en él –no necesariamente leerlo. Le damos un 2.
Lo mínimo que podemos hacer con un archivo es poder ejecutarlo –sin saber como está escrito ni poder modificarlo. Le damos un 1.
En verdad, lo mínimo que podemos hacer con un archivo es nada. Le damos un 0.
Ahora, si podemos hacer todo lo que queramos con el archivo –leerlo, modificarlo y ejecutarlo– le damos la suma de todos, un 7 (4+2+1)
Asimilándolo al formato r-w-x tenemos:
r -leer- es un 4
w -escribir- es un 2
x -ejecutar- es un 1
Ahora que sabemos que como interpretar estos números, los usaremos escribiéndolos en un determinado orden.
Este orden determina a que tipo de usuario (ugo) le asignamos que tipo de permiso –dado por los números 4,2,1,0,7; basándonos en su posición.
posición 1: u -dueño
posición 2: g -grupo
posición 3: o -otros
posición 1 posición 2 posición 3 -> u g o
Nota:
El tipo de usuarios a (all: todos) está implicita, ya que u+g+o=a
usuario + grupo + otros = todos
Eso es todo. Sencillo verdad?
Ejemplos con notación octal
Fíjate como obtenemos todas las combinaciones posibles sumando los permisos básicos 4, 2 y 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # dueño puede leer, escribir y ejecutar (4+2+1)
# grupo puede escribir y ejecutar (2+1) --no leer
# otros no tiene ningún acceso (0)
chmod 730 archivo
# este tipo de permiso es muy usado en archivos de servidores web
# dueño puede leer y escribir (4+2)
# grupo y otros sólo pueden leer (4)
chmod 644 archivo
# este tipo de permiso es muy usado en directorios de servidores web
# dueño puede leer, escribir y acceder al directorio
# grupo y otros pueden leer y acceder (4+1) achivos al directorio
chmod 755 directorio |
La notación r-w-x es la usada por el comando ls -l para decirnos los permisos de cada archivo:
1 2 3
| drwxr-xr-x 2 nomikos users 104 2009-07-10 03:54 backups
-rwxr-xr-x 1 nomikos users 103282 2009-07-10 03:56 program
-rw-r--r-- 1 nomikos users 19734183 2009-07-31 07:27 blog.sql |
1 2 3
| -rwxr-xr-x // se representa como 755 en notación octal.
-rw-rw-r-- // se representa como 664 en notación octal.
-r-x------ // se representa como 500 en notación octal. |
El primer guión (-) dice que es un archivo regular, podría ser (d) de directorio, (l) link simbólico y otros.
Por último, en general los links simbólicos siempre muestran todos los permisos para todos los tipos de usuarios:
1 2
| lrwxrwxrwx 1 root root 3 2009-07-18 15:50 X11R6 -> X11
lrwxrwxrwx 1 root root 8 2009-07-18 15:50 adm -> /var/adm |
Eso es normal y no significa que el archivo apuntado tenga esos permisos. Si aplicas chmod a uno de estos archivos –los links tambien son archivos– los permisos se darán al archivo apuntado.