domingo, 21 de julio de 2013

[Shell] chmod permisos en las carpetas Unix/Linux


Cambiar permisos en las carpetas y archivos en sistemas Unix


Los permisos en las carpetas de sistemas Unix son básicos,pero no así sencillos,como me comentaba el redactor de un blog sobre Linux hace un tiempo se podría hacer un libro solo sobre los permisos,ya que no solo es saber otorgar permisos si no que es saber a quien otorgárselos,en este tutorial prenderemos a cambiar permisos de archivos desde la shell usando el comando chmod,lo hare breve y espero que les ayude a entender como funciona el comando chmod  por si tienen problemas con el.

Tutorial

El comando chmod no es parte del código de bash pero aun así esta instalado en todos los sistemas Unix,por defecto.

Para ver los permisos de un archivo usamos el comando:

ls -l

Como vemos nos muestra los permisos en caracteres,como por ejemplo:

-rw-rw-r--

A diferencia de como se ven con ls,no los asignamos así,esto no lo hacemos:

chmod -rw-rw-r--

Lo que hacemos es usar  números octales,los cuales comienzan en 0 y terminan en 7,estos números los usamos sobre tres distintos tipos de usuarios del sistema:

owner => usuario(propietario)

group => grupo

other => otros

Los números octales están asignados de la siguiente manera

4 => lectura => r

2 => escritura => w

1 => ejecucion => x


0            0           0

^ owner ^ group ^ others


Y sumados se asignan los permisos,por ejemplo algo sencillo seria:

44

Que seria:

-r--r--r--



Lo que también significa,que el usuario,el grupo y otros pueden leer pero no pueden ejecutar ni escribir:




Otro ejemplo es 775

A lo que seria

7 = 4 => r + 2 => w  + 1 => x { sobre usuario }

7 = 4 => r + 2 => w  + 1 => x { sobre grupo }

5 = 4 => r + 1 => x { sobre otros }

También existen otro tipo de permisos los cuales ya no usan números octales,los llamados permisos simbólicos en el mundo de Unix y los cuales son mas sencillos,según mi opinión:

Al igual que los numeros tenemos distintas asignaciones:

r  lectura
w  escritura
x  ejecución  o acceso si es directorio
s  usa el id del dueño o grupo del archivo al ejecutar
t  fijar "sticky bit" a un directorio: sólo dueños pueden borrar
u  usuario (dueño)
g  grupo
o  otros
a  todos (dueño grupo y otros)

+  agrega permiso a los permisos existentes
-  quita permisos de los existentes
=  únicos permisos asignados al archivo

El equivalente seria:

000
ugo

Veamos como asignamos 444 con asignación simbólica:

u=r,g=r,o=r




Por ejemplo si han usado este comando:

chmod +x archivo_ejemplo

Y no sabían que es lo que asía,lo que hace es darle permisos de ejecución con asignación simbólica:

+x es igual a + ejecución y conserva los demás permisos

Es lo genial de la asignación simbólica podemos,asignar permisos mas los existentes:

chmod +w

Nos concede el permiso de editar el archivo,lo cual no podíamos con permisos 444.

Eso es todo,como vemos no solo es saber asignar permisos sino saber a que archivo,por ejemplo los archivos de /etc donde se guardan los archivos de configuración muchos de ellos solo tienen permisos de ejecución y lectura para todos los usuarios,y escritura solo para el propietario que es root.





No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.