Inicio | La Empresa | Soluciones Empresariales | Servicios a la Comunidad | Contacto
 
Permisos del sistema de ficheros. 
Autor: Joel Barrios Dueñas
Correo electrónico: jbarrios arroba linuxparatodos punto net
Sitio de Red: http://www.linuxparatodos.net/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2006 Linux Para Todos. Algunos Derechos Reservados 2007 Factor Evolución SA de CV. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

La asignación de permisos de acceso (de lectura, escritura y ejecución) pueden asignarse a través de modos, que son combinaciones de números de tres dígitos (usuario, grupo y resto del mundo) y el mandato chmod.

Notación simbólica.

El esquema de notación simbólica se compone de 10 caracteres, donde el primer carácter indica el tipo de fichero:

Valor Descripción
-
Denota un fichero regular.
d
Denota un directorio.
b
Denota un fichero especial como dispositivo de bloque.
c
Denota un fichero de carácter especial
l
Denota un enlace simbólico.
p
Denota una tubería nombrada (FIFO)
s
Denota un zócalo de dominio (socket)

Cada clase de permisos es representada por un conjunto de tres caracteres. El primer conjunto de caracteres representa la clase del usuario, el segundo conjunto de tres caracteres representa la clase del grupo y el tercer conjunto representa la clase de «otros» (resto del mundo). Cada uno de los tres caracteres representa permisos de lectura, escritura y ejecución, respectivamente y en ese orden.

Ejemplos:

Permisos Descripción
drwxr-xr-x
Directorio con permiso 755
crw-rw-r--
Fichero de carácter especial con permiso 664.
srwxrwxr-x
Zócalo con permiso 775.
prw-rw-r--
Tubería (FIFO) con permiso 664.
-rw-r--r--
Fichero regular con permiso 644.

Notación octal.

La notación octal consiste de valores de tres a cuatro dígitos en base-8. Con la notación octal de tres dígitos cada número representa un componente diferente de permisos a establecer: clase de usuario, clase de grupo y clase de «otros» (resto del mundo) respectivamente. Cada uno de estos dígitos es la suma de sus bits que lo componen (en el sistema numeral binario). Como resultado, bits específicos se añaden a la suma conforme son representados por un numeral:

  • El Bit de ejecución añade 1 a la suma.
  • El bit de escritura añade 2 a la suma
  • El bit de lectura añade 4 a la suma.

Estos valores nunca producen combinaciones ambiguas y cada una representa un conjunto de permisos específicos. De modo tal puede considerarse la siguiente tabla:

Valor Permiso Decripción
0
-
Nada
1
x
Ejecución
2
w
Escritura
3
wx
Escritura y ejecución
4
r
Lectura
5
rx
Lectura y Ejecución
6
rw
Lectura y Escritura
7
rwx
Lectura, Escritura y Ejecución

Note que el 3 (wx) es el resultado de 1+2 (w+x). Note que 5 (rx) es el resultado de 4+1 (r+x). Note que 6 (rw) es el resultado de 4+2 (r+w). Note que 7 (rwx) es el resultado de 4+3 (r+xw).

Permisos adicionales.

Hay una forma de cuatro dígitos. Bajo este esquema el estándar de tres dígitos descrito arriba se convierte en los últimos tres dígitos del conjunto. El primer dígito representa permisos adicionales. En sistemas y programática donde no puede ser omitido este primer dígito del conjunto de cuatro, se establece cero como valor de éste.

El primer dígito del conjunto de cuatro es también la suma de sus bits que le componen:

  1. El bit pegajoso (sticky bit) añade 1 al total de la suma.
  2. El bit setgid añade 2 al total de la suma.
  3. El bit setuid añade 4 al total de la suma.

El permiso SUID o bit setuid hace que cuando se ha establecido ejecución, el proceso resultante asumirá la identidad del usuario dado en la clase de usuario (propietario del elemento).

El permiso SGID o bit setgid hace que cuando se ha establecido ejecución, el proceso resultante asumirá la identidad del grupo dado en la clase de grupo (propietario del elemento). Cuando setgid ha sido aplicado a un directorio, todos los nuevos ficheros creados debajo de este directorio heredarán el grupo propietario de este mismo directorio. Cuando no se ha establecido setgid, el comportamiento predefinido es asignar el grupo del usuario al crear nuevos elementos.

El bit pegajoso (sticky bit) significa que un usuario solo podrá modificar y eliminar ficheros y directorios subordinados dentro de un directorio que le pertenezca. En ausencia del bit pegajoso (sticky bit) se aplican las reglas generales y el derecho de acceso de escritura por si solo permite al usuario crear, modificar y eliminar ficheros y directorios subordinados dentro de un directorio. Los directorios a los cuales se les ha establecido bit pegajoso restringen las modificaciones de los usuarios a solo adjuntar contenido, manteniendo control total sobre sus propios ficheros y pueden crear nuevos ficheros; sin embargo, solo pueden adjuntar o añadir contenido a los ficheros de otros usuarios. El bit pegajoso (sticky bit) es utilizado en directorios como /tmp y /var/spool/mail.

De modo tal puede considerarse la siguiente tabla:

Valor Permiso Descripción
1
--- --- --t
bit pegajoso
2
--- --s ---
bit setgid
3
--- --s --t
bit pegajoso + bit setgid
4
--s --- ---
bit setuid
5
--s --- --t
bit setuid + bit pegajoso
6
--s --s ---
bit setuid + bit setgid
7
--s --s --t
bit setuid + bit setgid + bit pegajoso

Cuando un fichero no tiene permisos de ejecución en alguna de las clases y se le es asignado un permiso especial, éste se representa con una letra mayúscula.

Permiso Clase Ejecuta No ejecuta
setuid
Usuario
s
S
setgid
Grupo
s
S
pegajoso (sticky)
Otros
t
T

Ejemplos.

Ejemplos permisos regulares.

Permiso Clase de Usuario Clase de Grupo Clase de Otros
0400
r--
---
---
0440
r--
r--
---
0444
r--
r--
r--
0500
r-x
---
---
0550
r-x
r-x
---
0555
r-x
r-x
r-x
0644
rw-
r--
r--
0664
rw-
rw-
r--
0666
rw-
rw-
rw-
0700
rwx
---
---
0711
rwx
--x
--x
0707
rwx
---
rwx
0750
rwx
r-x
---
0755
rwx
r-x
r-x
0777
rwx
rwx
rwx

Ejemplos permisos especiales.

Permiso Clase de Usuario Clase de Grupo Clase de Otros
1644
rw-
r--
r-T
2644
rw-
r-S
r--
3644
rw-
r-S
r-T
4644
rwS
r--
r--
5644
rwS
r--
r-T
6644
rwS
r-S
r--
7644
rwS
r-S
r-T
1777
rwx
rwx
rwt
2755
rwx
r-s
r-x
3755
rwx
r-s
r-t
4755
rws
r-x
r-x
5755
rws
r-x
r-t
6755
rws
r-s
r-x
7755
rws
r-s
r-t

Uso de chmod.

chmod [opciones] modo fichero

Ejemplo:

mkdir -p ~/tmp/
touch ~/tmp/algo.txt
ls -l ~/tmp/algo.txt
chmod 755 ~/tmp/algo.txt
ls -l ~/tmp/algo.txt

Lo anterior debe arrojar una salida similar a la siguiente:

[fulano@localhost ~]$ mkdir -p ~/tmp/
[fulano@localhost ~]$ touch ~/tmp/algo.txt
[fulano@localhost ~]$ ls -l ~/tmp/algo.txt
-rw-rw-r-- 1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo.txt
[fulano@localhost ~]$ chmod 755 ~/tmp/algo.txt
[fulano@localhost ~]$ ls -l ~/tmp/algo.txt
-rwxr-xr-x 1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo.txt
[fulano@localhost ~]$

Opciones de chmod.

Opción Descripción

-R

Cambia permisos de forma descendente en un directorio dado. Es la única opción de los estándares POSIX.

-c

Muestra que ficheros han cambiado recientemente en una ubicación dada

-f

No muestra errores de ficheros o directorios que no se hayan podido cambiar

-v

Descripción detallada de los mensajes generados por el proceso

El mandato chmod y los enlaces simbólicos.

El mandato chmod jamás cambia los permisos de enlaces simbólicos, sin embargo no representa un problema siendo que jamás se utilizan los permisos de los enlaces simbólicos. Si se aplica el mandato chmod sobre un enlace simbólico, se cambiará el permiso del fichero o directorio hacia el cual apunta. Cuando se aplica chmod de forma descendente en un directorio, éste ignora los enlaces simbólicos que pudiera encontrar en el recorrido.


Última Edición lunes, 05 de febrero 2007 @ 08:02 CST; 34,686 Hits Ver la versión para imprimir



CONDICIONES DE USO     Imagen gráfica -ORVON Internet Service Bureau- www.orvon.com
 Derechos de autor © 2010 Linux Para Todos
 Todas las marcas y derechos en esta página son de sus respectivos dueños.
 Puede sindicar nuestras NOTICIAS a través de el fichero RSS dando click AQUI.
O si desea sindicar el FORO DE SOPORTE TECNICO lo puede hacer dando click AQUI
O si desea sindicar los NUEVOS MANUALES lo puede hacer dando click AQUI
Otra web montada con Geeklog 
Esta página fue creada en 0.14 segundos