Google
Web dns.bdat.net

5.2 Permisos de ficheros

Es importante asegurarse que sus ficheros de sistema no los abren los usuarios o grupos que no tienen que realizar tareas de mantenimiento del sistema por ediciones casuales.

UNIX separael control de acceso a ficheros y directorios de acuerdo con tres características: propietario, grupo y otros. Siempre hay un sólo propietario, todos los miembros del grupo y cualquier otro.

Una rápida explicación de los permisos Unix:

Propiedad: -Qué usuario(s) y grupo(s) retiene el control de los permisos del nodo y del padre del nodo.

Permisos - Bits que se pueden fijar para permitir ciertos tipos de acceso a él. Los permisos para directorio pueden tener un significado diferente a los permisos para ficheros.

Lectura (r):

Escritura (w):

Ejecución(x):

Usted - El propietario del fichero

Group - El grupo al que pertenece

Everyone - Cualquiera del sistema

Save Text Attribute: (Para directorios)

El sticky bit también tiene un significado diferente cuando se aplica a directorios. Si es sticky bit está activo en un directorio, entonces un usuario sólo puede borrar ficheros que son propiedad del usuario o para los que tiene permiso explícito de escritura, incluso cuando tiene acceso de escritura al directorio. Esto está pensado para directorios como /tmp, que tienen permiso de escritura global, pero no es deseable permitir a cualquier usuario borrar los ficheros que quiera. El sticky bit aparece como 't' en los listados largos de directorios.

Attributo SUID: (Para Ficheros)

Este describe permisos al identificador de usuario del fichero. Cuando el modo de acceso de ID de usuario está activo en los permisos del propietario, y ese fichero es ejecutable, los procesos que lo ejecutan obtienen acceso a los recursos del sistema basados en el usuario que crea el proceso (no el usuario que lo lanza). Esto es causa de la utilización de muchos 'buffer overflow'.

Atributo SGID: (Para ficheros)

Si está activo en los permisos de grupo, este bit controla el estado de "poner id de grupo" de un fichero. Actúa de la misma forma que SUID, salvo que afecta al grupo. El fichero tiene que ser ejecutable para que esto tenga algún efecto.

Atributo SGID: (Para directorios)

Si activa el bit SGID en un directorio ( con "chmod g+s directorio"), los ficheros creados en ese directorio tendrán puesto su grupo como el grupo del directorio.

Usted - El propietario del fichero

Grupo - El grupo al que vd. pertenece

Otros - Cualquiera del sistema que no sea propietario o miembro del grupo.


      Ejemplos:
        -rw-r--r--  1 kevin  users         114 Aug 28  1997 .zlogin
        1st bit - ¿directorio?             (no)
         2nd bit - ¿lectura por el propietario?         (si, por kevin)
          3rd bit -  por el propietario?        (si, por kevin)
           4th bit - ¿ejecución por el propietario?      (no)
            5th bit - ¿lectura por el grupo?         (sí, por users)
             6th bit - ¿escritura por el grupo?        (no)
              7th bit - ¿ejecución por el grupo?      (no)
               8th bit - ¿lectura por cualquiera?      (si, por cualquiera)
                9th bit - ¿escritura por cualquiera?     (no)
                 10th bit - ¿ejecución por cualquiera?  (no)

Las siguientes líneas son ejemplos del conjunto mínimo de permisos que se requieren para llevar a cabo el acceso descrito. Puede querer dar más permisos que los listados, pero esto debería describir que hacen esos permisos mínimos sobre los ficheros:


-r--------  Permite acceso de lectura al propietario
--w------- Permite al propietario modificar o borrar el fichero
---x------  El propietario puede ejecutar este programa, pero no scripts de\
 
                       shell que requieren permisos de lectura
---s------  Se ejecutará con usuario efectivo  ID = propietario
-------s--  Se ejecutará con usuario efectivo  ID = grupo
-rw------T No actualiza "instante de última modificación".  Normalmente 
                       usado para ficheros de intercambio (swap)
---t------  No tiene efecto.  (antes sticky bit)

Ejemplo de Directorio:


        drwxr-xr-x  3 kevin  users         512 Sep 19 13:47 .public_html/
        1st bit - ¿directorio?             (si, contiene muchos ficheros)
         2nd bit - ¿lectura por el propietario?        (si, por kevin)
          3rd bit -  por el propietario?        (si, por kevin)
           4th bit - ¿ejecución por el propietario?      (sí, por kevin)
            5th bit - ¿lectura por el grupo?         (sí, por users)
             6th bit - ¿escritura por el grupo?       (no)
              7th bit - ¿ejecución por el grupo?      (sí, por users)
               8th bit - ¿lectura por cualquiera?      (si, por cualquiera)
                9th bit - ¿escritura por cualquiera?      (no)
                 10th bit - ¿ejecución por cualquiera?  (sí, por cualquiera\
)

Las siguientes líneas son ejemplos del mínimo conjunto de permisos que se requieren para llevar a cabo el acceso descrito. Le puede interesar dar más permisos que los indicados, pero esto debería describir que hacen los permisos mínimos en los directorios:


dr--------  El contenido se puede listar pero no se pueden leer los 
                       atributos.
d--x------  Se puede entrar en el directiorio y usado en las rutas de 
                       ejecución completas.
dr-x------   Se pueden leer los atributos del fichero por el propietario.
d-wx------  Se pueden crear/borra ficheros, incluso si no es el actual.
d------x-t  Previene el borrado de ficheros por otros con acceso de 
                      escritura. Usado en /tmp
d---s--s--  No tiene efecto

Los ficheros de configuración del sistema (normalmente en /etc) es habitual que tengan el modo 640 (-rw-r-----), y que sean propiedad del root. Dependiendo de los requisitos de seguridad del sistema, esto se puede modificar. Nunca deje algún fichero del sistema con permiso de escritura por un grupo o por cualquiera. Algunos ficheros de configuración, incluyendo, /etc/shadow, sólo deberían tener permiso de lectura por root, y los directorios de /etc no deberías ser accesibles, al menos por otros.

SUID Shell Scripts

Los scripts de shell SUID son un serio riesgo de seguridad, y por esta razón el núcleo no los acepta. Sin importar lo seguro que piense que es su script de shell, puede ser utilizado para que un cracker pueda obtener acceso a una shell de root.