jueves, 29 de septiembre de 2011

PERMISOS Y PROPIETARIOS DE ARCHIVOS Y DIRECTORIOS


 Propietarios de ficheros y directorios

Cada fichero o directorio en linux tiene un propietario. Normalmente el propietario es el que lo ha creado, aunque puede cambiarse por el propietario actual o por el root. El propietario es identificado por la cuenta de usuario y por el id de usuario (uid). Los usuarios validos están en /etc/passwd.
Tambien pertenece a un grupo que por defecto será el grupo principal al que pertenece el usuario, que puede pertenecer a varios grupos. El grupo puede ser cambiado por el propietario y por root.

Cambio de propietario

El comando para cambiar el propietario de un fichero o directorio es:
# chown options PROPIETARIO:[GRUPO] fichero
La opcion -R opera recursivamente sobre ficheros y directorios.

Cambio de grupo

Para cambiar el grupo:
# chgrp options GRUPO fichero
La opcion -r opera de forma recursiva.

        Permisos sobre ficheros y directorios

Los permisos definen como los usuarios pueden trabajar con los ficheros y directorios o cuando no pueden trabajar con ellos en absoluto. Los permisos son tambien llamados derechos de acceso o permisos de fichero o de acceso. Los tres tipos de permisos son:
  • Read (lectura)(r en los atributos del fichero o directorio): define acceso de lectura para un fichero. Para un directorio permite ver su contenido.
  • Write (escritura) (w): Permite modificar el fichero. Para un directorio indica que se pueden añadir o suprimir ficheros.
  • Execute (x): Permiso de ejecución si el fichero es binario. Para un directorio significa que se puede ver los atributos de un fichero o entrar en él y en sus subdirectorios.
Un guion en la lista de atributos del fichero supone que el permiso no esta activado.
Estos tres permisos pueden aplicarse para el usuario, para el grupo al que pertenece el usuario o para el resto de usuario, lo que hace un total de 9 atributos para cada fichero o directorio.

Visualización de los permisos

Si ejecutamos el comando ls con la opción -l
$ ls -l
obtendremos un listado como el siguiente:
total 717474
drwx------ 3 root root 160 Feb 20 17:46 Desktop
drwx------ 7 root root 520 Feb 1 16:27 Mail
-r--r--r-- 1 root root 733003776 Dec 27 07:08 NBA Live 2003.iso
drwxr-xr-x 3 root root 320 Feb 1 18:36 OpenOffice.org1.0.1
-rw-r--r-- 1 root root 320 Jan 24 21:13 fstab
-rw-r--r-- 1 root root 1678613 Feb 1 16:11 out.pnm
-rw-r--r-- 1 root root 1136 Feb 1 14:32 smb.conf 
 
donde se ve que la primera columna nos indica los atributos para los permisos. Hay 10 caracteres. El primer carácter nos indica el tipo de fichero, con el siguiente significado:
  • - para un fichero.
  • d para un directorio.
  • l para un enlace.
Los otros 9 son los permisos, 3 para el usuario, tres para el grupo y 3 para el resto de usuarios.
drwxrwxrwx

 

Cambio de permisos

Se utiliza el comando chmod:
$ chmod nnn fichero
donde n es una cifra de 0 a 7 que en binario seria un grupo de tres 000 – 111. En este grupo de tres, el primero es para r (0 no tiene permiso de lectura, 1 si lo tiene), el segundo para w (0 no tiene permiso de escritura, 1 si lo tiene), y el tercero para x (0 no tiene permiso de ejecución, 1 si lo tiene).
El primer grupo seria para el usuario, el segundo para el grupo y el tercero para el resto.
Por ejemplo si quisiéramos dar al fichero pepe permiso de lectura, escritura y ejecución para el usuario (111 o rwx), lectura y ejecución, pero no escritura para el grupo (101 o r-x) y solo ejecución para el resto (001 o –x), tendríamos:
$ chmod 751 pepe
Si queremos que se aplique de forma recursiva a todo el contenido de un directorio usaríamos la opcion -R:
$ chmod -R 751 dirpepe

No hay comentarios:

Publicar un comentario