Permisos de acceso a archivos


Una de las características del Unix es la flexibilidad de crear grupos de trabajo, para compartir información, recursos, etc. Para esto el sistema define tres divisiones:

Usuario u Grupo g Otros o
Además define tres tipos de acceso al sistema de archivos para cada división, que son:
Lectura r Escritura w Ejecución x
El usuario define los permisos de acceso a su información para el mismo (u), para el grupo al que pertenece (g) y para los usuarios restantes (o).

Con el comando "ls -l" se pueden conocer los permisos de cada archivo o directorio.

La primera columna define el tipo de archivo y los más comunes son:

	d	Directorio
	b	Archivo especial (bloque)
	c	Archivo especial (caracteres)
	l	Liga simbólica
	p	Archivo especial (FIFO o pipe)
	s	Socket
	-	Archivo común
Las siguiente columnas define los permisos "rwx" para cada división "ugo", ejemplo:

moises@tonatiuh% ls -l /

total 1597
lrwxrwxrwx   1 root     root           9 Mar  7  1996 bin -> ./usr/bin/
drwxr-xr-x   2 root     nobody       512 Sep  4 11:51 cdrom/
drwxrwxr-x  16 root     sys         6656 Dec 18 01:47 dev/
.  .  . 

Para cambiar los permisos de acceso se usa "chmod" y tiene dos formas de uso, la primera es de forma simbólica y la segunda numérica.

Dentro de forma simbólica se usan las siguientes abreviaturas:


u - usuario	g - grupo		o - otros	a - todos

r - lectura w - escritura x - ejecución

= - igual a + - añade - - resta

Ejemplo:

Veamos los permisos de acceso del archivo hi:

moises@tonatiuh% ls -l hi


-rw-r-----   1 moises   atec    1209 Dec  9 15:56 hi

Cambiemos los permisos para que todos puedan leer únicamente:

moises@tonatiuh% chmod a=r hi

moises@tonatiuh% ls -l hi

-r--r--r--   1 moises   atec        1209 Dec  9 15:56 hi

o para que todos puedan también modificar y ejecutar:

moises@tonatiuh% chmod ugo+wx hi

moises@tonatiuh% ls -l hi

-rwxrwxrwx   1 moises   atec     1209 Dec  9 15:56  hi*

aquí se quitan los permisos de escritura y ejecución para el grupo y otros, quedando solo el de lectura:

moises@tonatiuh% chmod go-wx hi

moises@tonatiuh% ls -l hi

-rwxr--r--   1 moises   atec    1209 Dec  9 15:56 hi*

La otra manera de usar el comando es con la ayuda de lo siguiente.A cada posición de "rwx" se le relaciona un binario, dependiendo de cual posición este en uso, dando como resultado un número:

	     BINARIO                         DECIMAL
	r	w	x
	______________________________________________
	0	0	1			1
	0	1	0			2              
	1	0	0			4                          

Para definir los permisos, solo se realizarían las sumas correspondientes a cada división, ejemplos:

Veamos los permisos de nuestro archivo de prueba:

moises@tonatiuh% ls -l ht.org

-rw-r--r--  1 moises	atec       270 Apr  8 12:30 ht.org

Definamos para "ugo" permisos de lectura (4) únicamente:

moises@tonatiuh% chmod 444 ht.org

moises@tonatiuh% ls -l ht.org

-r--r--r--  1 moises	atec        270 Apr  8 12:30 ht.org

Definamos permisos de "rwx" para el usuario y de "rx" para el grupo y otros, respectivamente:

u (rwx) = 4 + 2 + 1 = 7

o,g (r-x) = 4 + 1 = 5

moises@tonatiuh% chmod 755 ht.org

moises@tonatiuh% ls -l ht.org

-rwxr-xr-x  1 moises	atec        270 Apr  8 12:30 ht.org