lunes, 20 de abril de 2015

CHMOD

Hola a tod@s

Tengo para hoy un tutorial de como dar permisos a los archivos en linux por consola.
Espero que lo entendais pues sino este bolg no tendria ningún sentido.




CHMOD

Comando para cambiar los permisos a los archivos y directorios.


Formato:

$ chmod [u/g/o][+/-/=][rwx] nombre_archivo [opciones]


u: Usuario. Solo modificará los permisos en el dueño del archivo.

g: Grupo. Modifica los permisos a todos los que pertenezcan al grupo del dueño del grupo.

o: Otros. Modifica al resto de usuarios existentes.

- : quita permisos

+: Da permisos

r : Read. permiso de lectura. Puedes o no ver su contenido

w: Write. Permiso de escritura. Puedes o no modificar, borrar, agregar su contenido.

x: Execute. Permiso de ejecución. Puedes o no ejecutar como un  comando o un script.

=: Iguala permisos. Deja solo los permisos que pongamos y el resto los remueve

Opciones:
    -R para que mire también en los subdirectorios de la ruta. Para directorios
    -v para que muestre cada fichero procesado
    -c es como -v, pero sólo avisa de los ficheros que modifica sus permisos 



Veamos algunos ejemplo para entenderlo mejor os aconsejo que para practicar utiliceis archivos y directorios creado por vosotros en vuestra carpeta personal:


$ chmod g+w elArchivoEmilio

Da derecho de escritura al grupo del archivo llamado tuArchivo


-r--rw-r--    1  wada  tuArchivo  4096 abr 13 19:30 elArchivoEmilio

Al ejecutar "ls -l" podrás ver los permisos de los archivos como en la imagen superior.
La forma para interpretarlo es el siguiente:

El primer caracter "-" informa que es un archivo, los 3 siguientes pueden ser "-" "r" "w" "x" son los permisos del dueño (user), los 3 siguientes para el grupo (group) y 3 últimos son para el resto u otros (other)

En la imagen anterior vemos que el archivo solo tiene derecho de lectura para todos los usuarios y ahora derecho de escritura para el grupo.

Y si ejecutamos esto:


$ chmod u+x ArchivoEmilio

Da permiso de ejecución al dueño del archivo llamado ArchivoEmilio y con ls -l veras esto.


-r-xrw-r--    1  wada  users  4096 abr 13 19:30 ArchivoEmilio

Ejecutemos esto:



$ chmod -rwx ArchivoEmilio
$ chmod +rwx ArchivoEmilio

La primera linea quita todos los permisos a un archivo, al no poner sobre quien presupone que es a todos U, G y O, mientras que en la segunda da todos y a todos, los permisos al archivo quedando así:


-rwxrwxr-x    1  wada  users  4096 abr 13 19:30 ArchivoEmilio

Como puedes observar no da todos los derechos como se supone que se darian, es pos seguridad que no se le de derechos de escritura a todos, por eso si quieres hacerlo tendras que ponerlo esplicitamente.

Mas ejemplos 

$ chmod =r ArchivoEmilio
Cambia los permisos en 3 lugares, cuando haces una lista de directorios con “ls -l” veras algo parecido a.
-r--r--r--    1  wada  users  4096 abr 13 19:30 ArchivoEmilio
nota esas 3 “r” son para los 3 diferentes tipos de permisos
donde:
x-------------x-------------x
|  permisos   |  pertenece  |
x-------------x-------------x
|  rwx------  | usuario     |
|  ---r-x---  | grupo       |
|  ------r-x  | otros       |
x-------------x-------------x
podemos remover permisos para cada dueño; supongamos que tenemos un archivo:
-rwxr-xr-x    1  wada  users  4096 abr 13 19:30 archivoEmilio
Para remover los permisos de ejecución a grupos y otros basta con usar:
$ chmod g-x,o-x archivoEmilo
nuestro archivo quedara con estos permisos
-rwxr--r--    1  wada  users  4096 abr 13 19:30 archivoEmilio
si deseas remover a usuario el permiso de escritura:
$ chmod u-x archivoEmilio
-r-xr--r--    1  wada  users  4096 abr 13 19:30 archivoEmilio
Agregando y removiendo dos permisos a la vez:
$ chmod u-x+w archivoEmilio
-rw-r--r--    1  wada  users  4096 abr 13 19:30 archivoEmilio
¿muy simple verdad? 
Veamos ahora en Octal
La representación octal de chmod es muy sencilla
Lectura tiene el valor de 4
Escritura tiene el valor de 2
Ejecución tiene el valor de 1
Entonces:
x-----x-----x-----------------------------------x
| rwx |  7  | Lectura, escritura y ejecución    |
| rw- |  6  | Lectura, escritura                |
| r-x |  5  | Lectura y ejecución               |
| r-- |  4  | Lectura                           |
| -wx |  3  | Escritura y ejecución             |
| -w- |  2  | Escritura                         |
| --x |  1  | Ejecución                         |
| --- |  0  | Sin permisos                      |
x-----x-----x-----------------------------------x
Por lo tanto:
x------------------------x-----------x
|chmod u=rwx,g=rwx,o=rx  | chmod 775 | 
|chmod u=rwx,g=rx,o=     | chmod 760 |
|chmod u=rw,g=r,o=r      | chmod 644 |
|chmod u=rw,g=r,o=       | chmod 640 |
|chmod u=rw,go=          | chmod 600 |
|chmod u=rwx,go=         | chmod 700 |
x------------------------x-----------x
Facil verdad.

Esto es todo, espero que lo tengamos ahora mucho mas claro.

Si teneis alguna duda, comentala.

Saludos.


No hay comentarios:

Publicar un comentario