domingo, 25 de enero de 2009

Atributos de un fichero y permisos

Podemos ver los atributos de un fichero con ls -l


Indicador de tipo:
- fichero normal
d directorio
l enlace simbólico
c fichero de dispositivo de caracteres
b fichero de dispositivo de bloques
p tubería
s socket

Número de enlaces: indica el número de nombres (enlaces duros) del fichero
→ en el caso de un directorio, esto corresponde con el número de subdirectorios (incluidos . y ..)

Tamaño es el tamño en bytes
→ con ls -lh se ve el tamño de forma más legible
→ el tamaño máximo de un fichero depende del filesystem usado

Fecha especifica la fecha de última modificación del fichero
→ podemos actualizarla con el comando touch

Nombre la longitud máxima del nombre es de 255 caracteres
→ evitar el uso de espacios y caracteres especiales


Permisos de ficheros y directorios:
Hay tres operaciones básicas: lectura(r), escritura(w), ejecución(x)
Efecto sobre un fichero:
→lectura(r): permite abrir y leer el fichero
→escritura(w): permite modificar o truncar el fichero(para borrarlo, basta con que el directorio tenga prmiso de escritura)
→ejecución(x): permite ejecutar el fichero (binario o script)

Efecto sobre directorios:
→ejecucion(x): permite entrar en el directorios(pero no listar su contenido, ni crar ficheros o directorios)
→lectura y ejecución(rx): permite listar el contenido del directorio (pero no crear ficheros o directorios)
→escritura y ejecución (wx): permite crear, borrar o renombrar ficheros (pero no listar su contenido)
→acceso total(rwx)

Los permisos se aplican en tres categorías:
→Permisos de usuario(u): asociados al propietario del fichero(por defecto, el usuario que lo creo)
→Permisos de grupo (g): usuarios del grupo del propietario
→Permisos de otros(o): resto de usuairos

Cada usuario cae en uno solo de estas categorías:
→p.e. al propietario se le aplican los permisos de usuario, aunque sean más restrictivos que los del grupo.


Cambio de permisos:

El comando para modificar los permisos es chmod
→ Formato: chmod [-R] operación ficheros.
→ -R indica acceso recursivo.
→ solo el propietario del fichero (o root) puede cambiar los permisos.
operación indica como cambiar los permisos, y puede especificarse mediante símbolos o números:
→ Permisos simbólicos: formato → quien op permisos
→quien especificado por u, g, o y a para todos
→op puede ser + para añadir permisos, - para quitar o = para establecer
→permisos especificados por r,w,x

Permisos especiales:
Además de rwx existen los permisos setuid/setgid(s) y sticky bit (t)

→setuid y setgid están relacionados con los atributos de los procesos:
→cuando un proceso se crea se le asigna un UID/GID real y un UID/GID efectivo.
→UID/GID real: identificadores de usuario y grupo del usuario que lanzó el proceso(y que puede matarlo)
→UID/GID efectivos: determinan las operaciones que el proceso puede hacer sobre los objetos del sistema
→ por ejemplo, un proceso con UID efectivo 0 (root) puede manipular todos los ficheros del sistema.
→lo normal es que los UID/GID normal y efectivo de un proceso coincidan

Los permisos setuid/setgid permiten que un proceso lanzado por un suuairo se ejecute con EUDI/EGID de otro usuario.
Para fijar setuid/setguid:
→chmod u+s fija setuid
→chmod g+s fija setgid
De forma numérica:
→ 4000 setuid, 2000 setgid


sticky bit (solo se usa en directorios):
Permite crear ficheros en el directorio (si tiene permiso de escritura), pero solo los puede borrar:
→el propietario del fichero
→el propietario del directorio
→el superusuario
Para activar el sticky bit:
→ chmod +t dir
→ chmod 1xxx dir


Permisos por defecto:
Cuando se crea un fichero se cambian los permisos por defecto:
→estos permisos pueden modificarse con umask: umask [opciones] valor.
donde valor son tres dígitos que especifican los permisos para u, g, o según la tabla:
Octal Permisos Octal Permisos
0 rwx 4 -wx
1 rw- 5 -w-
2 r-x 6 --x
3 r-- 7 ---
→Opciones:
-S muestra los permisos por defecto


Cambio de usuario/grupo:
Los comandos chown y chgrp permiten cambiar el propietario y el grupo de un fichero.
sólo root puede cambiar el propietario
el grupo puede cambiarse a otro al que pertenezcamos
Formato:
→chown [opciones] propietario ficheros
→chgrp [opciones] grupo ficheros
→chown [opciones] propietario:grupo ficheros
Algunas opciones:
→ -R recorre recursivamente
→ -v (verbose) indica la operaciones que realiza