Para que un usuario pueda acceder a un determinado fichero, es necesario que tenga habilitado el permiso de acceso. Se puede tener alguno de ellos, todos o ninguno.

Los permisos de acceso o derechos de uso de ficheros son :

  • r Permiso de lectura. Significa que se puede mirar el contenido. Si se trata de un directorio que se puede visualizar el contenido (ficheros) de ese directorio.
  • w Permiso de escritura. Significa que se puede modificar el contenido. Si es un directorio que se pueden borrar y crear ficheros dentro de ese directorio.
  • x Permiso de ejecución. Se puede ejecutar el fichero, este permiso es imprescindible si se quiere ejecutar un script. Si es un directorio el usuario que lo posea tendrá acceso para realizar el resto de las funciones permitidas mediante los otros permisos (lectura y/o escritura) y por tanto podrá entrar en él, buscar o copiar ficheros de ese directorio, etc.
Nota:Para determinar los permisos finales siempre se debe tener en cuenta que:
a) Para poder realizar operaciones sobre cualquier directorio (leer o escribir) será necesario siempre tener otorgado además el permiso de ejecución.
b) Para acceder a un recurso de cualquier forma (ejecución, lectura o escritura) se deben tener permisos de para todos los directorios que contienen al recurso directa e indirectamente.
Para un fichero existen tres posibles entidades que disfrutan de los permisos de los ficheros:
  • u Usuario. También conocido como propietario, es el usuario dueño del fichero.
  • g Grupo. Grupo al que pertenece el fichero generalmente coincide con el grupo del propietario. El grupo determina el dominio.
  • o Otros. Son los demás usuarios que no pertenecen a este grupo.
Los permisos son atributos de cada fichero, están almacenados en el i-nodo del fichero. Los atributos de un fichero se pueden conocer mediante la orden: ls -l. Esta orden muestra un listado en formato largo de los ficheros del directorio actual y muestra algo como:
1
La 2ª columna muestra el número de enlaces que tiene un fichero o directorio.
La 3ª columna muestra el nombre del propietario del fichero.
La 4ª columna indica el grupo al pertenece el fichero.
La 5ª columna muestra el tamaño en bytes del fichero o directorio.
La 6ª columna es la fecha, y en algunos caso la hora, de la última modificación.
La 7ª columna representa el nombre del fichero o directorio.
La 1ª columna muestra los atributos de cada fichero. Están representados mediante una cadena de 10 caracteres que significan:
  • Tipo de fichero. Está representado en el primer carácter.
  • Permisos. Se representan por los siguientes nueve caracteres.
2
  • El ‘-‘ (guión) indica que se trata de un fichero ordinario.
  • La ‘d’ indica que es un fichero de entrada a un directorio.
  • La ‘b’ indica que es un dispositivo de bloques.
  • La ‘c’ indica que es un dispositivo de caracteres.
  • La ‘l’ indica que es un enlace.
  • Existen otros que varían según la versión de Unix: ‘p‘ (pipes o tuberias), ‘s‘ (sockets), etc. Los restantes nueve caracteres son una representación simbólica de los permisos de ese fichero, relativos a usuario, propietario, grupo y otros. Estos nueve caracteres se dividen en tres grupos, de tres caracteres cada uno, representando lectura, escritura o ejecución de cada grupo.
  • El ‘- ‘ (guión) representa que no está habilitado el permiso.
  • La ‘r’ indica que tiene habilitado el permiso de lectura.
  • La ‘w’ indica que tiene habilitado el permiso de escritura.
  • La ‘x’ indica que tiene habilitado el permiso de ejecución.
Un ejemplo de un fichero cuyo listado largo muestra:
-rwx r-x —     4   ciro     users  456   Oct 22 21:45prueba
Este listado indica que el fichero prueba es un fichero ordinario con permisos totales para el propietario, de lectura y ejecución para el grupo (users) y ninguno para el resto. Además tiene 4 enlaces, fue modificado por última vez el 22 de Octubre del presente año a las 21:45 horas y tiene un tamaño de 456 bytes.
Los tres tipos de permisos mencionados poseen una representación numérica basada en el sistema octal que parte de representar como “1” los bits de los permisos otorgados y “0” para los negados. Luego se transforma la representación binaria así obtenida en octal.
La combinación de los tres tipos de permisos para un tipo de usuario oscila desde cero (ningún permiso) hasta siete (todos los permisos):
3
Los permisos “totales” de un recurso constan de nueve indicadores, donde los tres primeros indican los permisos asociados al dueño, los otros tres, al grupo y los últimos, al resto de los usuarios.
Ejemplos:

rwx r-x — =111 101 000 (750 en octal)

rw- r– r– =110 100 100 (644 en octal)

Sólo el dueño de un recurso siempre tendrá derecho a cambiar sus permisos, además de root.
La orden para cambiar los permisos es chmod

Por ejemplo, chmod 755 index.php
Ademas de esto, se pueden añadir permisos adicionales para cada usuario, similar al sistema de permisos NTFS. Esto se logra con ACLs, Acces Control List, o listas de control de acceso en castellano.

fuente: http://www.utilizalinux.com/sistema-de-permisos-en-linux/

Sistemas de permisos en linux