11 oct 2011

Linux - Comando chmod (Parte 1)

El comando chmod en Linux/Unix se deriva de CHange MODe, y se utiliza para cambiar los permisos de archivos y carpetas.

Los permisos de Archivos/Carpetas son: lectura (r), escritura (w) y ejecución (x) y aplican para cada usuario (u), grupo (g) y otros (o).

Este tipo de restricción es útil para la correcta administración de archivos y carpetas, proporciona seguridad y nivel de acceso a archivos/carpetas.

Pero, ¿por qué necesitamos cambiar los permisos de archivos/carpetas ?
  1. Para ejecutar un script
  2. Cuando una aplicación requiere aceso a archivos/carpetas para trabajar adecuadamente
  3. Para dar la posibilidad a un usuario de editar un archivo.
¿Cómo podemos cambiar los persmisos de archivos/carpetas?

Los permisos pueden ser: ejecución, escritura y lectura y se pueden aplicar de dos formas:
  1. Método Numérico: Usando números (1, 2 y 4)
  2. Método Alfa: Usando caracteres (w, x, r, u, o, g, a, -, +, =, s, t
Método Numérico

2^0=1   -->  Ejecución  (x)
2^1=2   -->  Escritura  (w)
2^2=4   -->  Lectura     (r)

Método Alfa

w -  escritura
x  -  ejecución
r  -  lectura
u  -  usuario
g  -  grupo
o  -  otros
a  -  todos
+ -  agregar los permisos al usuario/grupo/otros mencionado
-   -  remover los permidos al usuario/grupo/otros mencionado
= -  replicar los permisos a otra clase de usuario/grupo/otros

Adicional a esto, hay otros conceptos que van ligados al método numérico y alfa (SUID, SGID, Sticky Bit). Mas adelante, en otro post explicaré esto. 

A continuación veremos como cambiar los permisos básicos a un archivo. Para esto, será necesario entender la salida del comando ls.

[angel@angelcm ~]$ ls -al
Total 36
-rw-------.  1 angel angel     39913 Oct 11 11:05 .bash_history
-rw-r--r--.  1 angel   500        18 Jun 22 08:49 .bash_logout
-rw-r--r--.  1 angel   500       193 Jun 22 08:49 .bash_profile
-rw-r--r--.  1 angel   500       124 Jun 22 08:49 .bashrc


La primer columna puede ser divida en dos partes, en negro - y en azul rw-r--r--.
  1. Tipo de archivo 
  2. Permisos para el archivo (dividido en tres partes)
    a) Permisos para el usuario: rw
    b) Permisos para el grupo: r
    c) Permisos para otros: r
Ejemplo usando el método numérico:

El archivo debe tener permisos de lectura, escritura y ejecución para el usuario, permisos de lectura y ejecución para el grupo y lectura y ejecución para otros.

Entonces:

permisos de lectura, escritura y ejecución para el usuario = 7
permisos de lectura y ejecución para el grupo = 5
permisos de lectura y ejecución para otros = 5

Los permisos serán 755

[angel@angelcm ~]$ chmod 755 archivo

Ejemplos usando el método alfa:

Ejemplo: asignando permisos de escritura al usuario

[angel@angelcm ~]$ chmod w+u archivo

Ejemplo: asignando permisos de escritura al grupo

[angel@angelcm ~]$ chmod w+g archivo

Ejemplo: asignando permisos de ejecución a otros.

[angel@angelcm ~]$ chmod x+o archivo

Ejemplo: asignando permisos de ejecución y escritura a todos.

[angel@angelcm ~]$ chmod xw+a archivo

 Ejemplo: removiendo permisos de ejecución a usuario.

[angel@angelcm ~]$ chmod u-x archivo

Ejemplo: replicando los permisos del usuario al grupo.

[angel@angelcm ~]$ chmod u=g archivo

Listo, nos vemos en la siguiente entrada.

No hay comentarios:

Publicar un comentario