Introducción

En Unix la seguridad de los diferentes objetos del sistema vienen determinado por usuario y el grupo. Internamente, estas entidades el sistemas las representa a través de dos números, el uid - user id, para el usuario - y el gid - group id, para el grupo -, que representa a un conjunto de usuarios. Cade usuario pertenece a un grupo primario y puede pertenecer a varios grupos secundarios.

Esta información está almacenada en los sistemas Unix más tradicionales en los ficheros /etc/passwd y /etc/group. En los Unix más modernos, no se accede a ellos directamente, sino que existe todo una serie de módulos - conocidos como PAM - que permiten obtener la información necesaria de otras fuentes como pueden ser NIS, LDAP u otro sistema de almacenamiento.

Los permisos que pueden existen sobre los objectos del sistema de ficheros son:

Cuando un usuario , user, que pertenece a los grupos groups intenta acceder a un objeto dentro del sistema de fichero, cuyo propietario es fuser y el grupo es fgroup

  1. usuario. Si user es igual que fuser se comprueba los permisos asociados al propietario.
  2. grupo. Si user pertenece al grupo fgroup. En este caso se comprueban los permisos asociados al grupo.
  3. otros. Si user no cumple con las condiciones anteriores se miranlos permisos asociados a otros.

Obteniendo información de permisos

Para los permisos de un fichero basta con usar la opción -l del ls:
ls -l /etc/passwd
Permisoshard linksUsuarioGrupoTamañoTimestampFichero
-rw-r--r-- 1 root root 1811 Apr 15 09:40/etc/passwd
PermisosDescripción
- Tipo de fichero: fichero normal.
rw- Permisos del propietario del fichero: lectura y escritura para el propietario
r-- Permisos del grupo del fichero: lectura para los miembros del grupo root
r-- Permisos para el resto: todo el mundo puede leer el fichero

El tipo de fichero puede ser:

-Fichero normal
dDirectorio
sSocket local
pPipe
bDispositivo de bloques
cDispositivo de caracteres

Cambiando permisos: chmod

Los permisos se cambian con la ayuda de la orden chmod. La sintaxis de esta orden es:
chmod [opciones] permisos fichero(s)
Las opciones más habituales son:

Los permisos pueden expresarse de dos maneras:

  1. Notación simbólica:
    [augo][+-=][rwx][ts]

    Los permisos corresponden con:

  2. Notación octal. Estos números se suman para poner los permisos adecuados.
    PermisoDescripción
    0100Ejecución para el propietario
    0200Escritura para el propietario
    0400Lectura para el propietario
    0010Ejecución / búsqueda para el grupo
    0020Escritura para el grupo
    0040Lectura para el grupo
    0001Ejecución / búsqueda para otros
    0002Escritura para otros
    0004Ejecución / búsqueda para otros
    1000Sticky bit
    2000setgid
    4000setuid

Ejemplos de uso

Se van a usar las dos notaciones. Al añadir o quitar permisos sólo funciona con los modos simbólicos

Cambiando propietarios y grupos: chown y chgrp

Para cambiar el usuario y el grupo se usan chown y chgrp. Estas órdenes sólo la pueden ejecutar el usuario root.
chown [-R] usuario fichero(s)
chgrp [-R] grupo ficheros(s)

La opción -R indica que se procese de manera recursiva los directorios que se le indiquen.

Ejemplos