Introducción
Los permisos asociados a ficheros y directorios, son una de las medidas de seguridad básicas en los sistemas. Generalmente, el usuario propietario será la persona que ha creado el fichero, pero ésta puede ser alterada después de su creación. Existen tres tipos básicos de permisos, que son de:- Lectura: permite a los usuarios leer el archivo especificado.
- Escritura: permite a los usuarios modificar el archivo especificado.
- Ejecución: permite a los usuarios ejecutar el archivo especificado.
- r (read): acceso de lectura.
- w (write): acceso de escritura.
- x (execute): acceso de ejecución.
ls -l
. Ésta es una salida típica:
drwxr-xr-x 2 Pepe Pepe 4096 jun 6 12:50 lg
-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py
drwxr-xr-x 2 Pepe Pepe 4096 jun 6 12:50 scripts
Como podemos observar en la Figura 1.1, el primer carácter especifica el tipo de recurso. En este campo existen varios:
- - representa un archivo.
- b representa un archivo de bloques especial.
- c representa un archivo de caracteres especiales.
- d representa un directorio.
- l representa un enlace simbólico
- Los permisos del propietario: estos permisos muestran el acceso del propietario del archivo
- Permisos de grupo: estos permisos muestran el acceso del grupo al archivo.
- Permisos mundiales: estos permisos muestran los derechos que tiene el resto del mundo a acceder a este archivo (si tiene alguno).
-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py
Por consiguiente, Pepe (el propietario del archivo) tiene todos los derechos de acceso en él, con lo cual puede leer, escribir y ejecutar el archivo.
-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py
De igual modo, los usuarios del grupo (del grupo Pepe) también pueden leerlo, escribirlo y ejecutarlo.
-rwxrwxr-x 1 Pepe Pepe 0 jun 6 12:49 kgl.py
Y finalmente, aquellos que no sean Pepe y que no pertenezcan a su grupo, tienen derecho a leer y ejecutar el archivo, pero en cambio, no pueden escribir en él.
En resumen:
- El primer carácter representa normalmente si es un archivo (-) o un directorio (d).
- El primer conjunto de los tres caracteres indica los privilegios del usuario.
- El siguiente conjunto, los privilegios del grupo.
- Y finalmente, el último conjunto indica los privilegios del resto de usuarios.
chmod: cambiar los permisos de los archivos
Para definir los permisos a un usuario concreto sobre un archivo o un directorio, se utiliza el comando chmod. Existen tres tipos de operadores:- El operador - quita los permisos.
- El operador + agrega permisos.
- El operador = asigna permisos.
- r: Éste carácter añade o quita el permiso de lectura. Ejemplo: chmod +r nombre de archivo
- w: Éste carácter añade o quita el permiso de escritura. Ejemplo: chmod -w nombre de archivo
- x: Éste carácter añade o quita el permiso de ejecución. Ejemplo: chmod +x nombre de archivo
Sistema octal
El sistema octal, es un sistema numérico en base 8 que utiliza los dígitos de 0 a 7.La siguiente tabla resume el esquema octal y lo que representa cada número, aunque seguidamente lo veremos con más detalle.
- 0000: Equivale a
---
por lo que no tenemos ningún permiso. - 0001: Equivale a
--x
por lo que el propietario tiene permisos de ejecución. - 0002: Equivale a
-w-
por lo que el propietario tiene permisos de escritura. - 0004: Equivale a
r--
por lo que el propietario tiene permisos de lectura. - 0010: Equivale a
--x
por lo que X grupo tiene permisos de ejecución. - 0020: Equivale a
-w-
por lo que X grupo tiene permisos de escritura. - 0040: Equivale a
r--
por lo que X grupo tiene permisos de lectura. - 0100: Equivale a
--x
por lo que otros tienen permisos de ejecución. - 0200: Equivale a
-w-
por lo que otros tienen permisos de escritura. - 0400: Equivale a
r--
por lo que otros tienen permisos de lectura. - 1000: Éste modo denominado Sticky bit, es aplicado a directorios importantes (como /tmp) con privilegios especiales. El bit asignado a un directorio sólo puede ser renombrado o borrado por el propietario del elemento del directorio o root aunque el resto tenga permisos de escritura. Además, éstos se indentifican mediante una t en la última posición de la propiedad de permisos. Ejemplo:
drwxrwxrwt 13 root root 4096 jun 6 22:44 tmp
- 2000: Éste modo denominado bit SETGID (Set Group ID) está orientado a facilitar el trabajo en grupo cuando varios usuarios deben de acceder a una colección común de ficheros y directorios. Se representan mediante la letra S. Por ejemplo,
drwxrws--- 2 Pepe profesorado 4096 jun 3 22:12 Documentos
el propietario del directorio y los miembros del grupo profesorado pueden acceder a este directorio. Los usuarios que no sean miembros de este grupo se “asignan” al mismo, con lo cual puede suponer un riesgo de seguridad si se definiera el valor root SUID en un programa. - 4000: Finalmente, éste modo denominado bit SETUID (Set User ID) es un atributo de archivo especial que indica al sistema que debe ejecutar los programas marcados con un ID de usuario en concreto. Por ejemplo, el programa vipw normalmente necesita permisos de usuario root para acceder a /etc/passwd, por tanto un usuario normal no podría cambiar dicho archivo, ya que sería demasiado peligroso otorgar a todos los usuarios acceso directo a él.
Los archivos de bit SUID y SGID pueden ser buscados de la siguiente forma:
find / \( -perm -4000 -o -perm 2000 \) -ls > archivos_con_suid_sgid.txt
con lo que nos hará un listado en un archivo de texto que posteriormente podemos analizar para otorgar los permisos adecuados para así, obtener un sistema mucho más seguro.Finalmente, podemos facilitar las cosas reduciendo rápidamente los permisos del propietario, de grupos y otros usuarios a un número de tres dígitos utilizando los siguientes valores:
- 0: Sin permisos.
- 1: Ejecución.
- 2: Escritura
- 3: Escritura y ejecución (actualmente no se utiliza mucho).
- 4: Lectura.
- 5: Lectura y ejecución.
- 6: Lectura y escritura.
- 7: Todo el conjunto: lectura, escritura y ejecución.
[cloti@ ~]$ pwd; cd /home/pepe/
/home/cloti
bash: cd: /home/pepe/: Permiso denegado
[pepe@ ~]$ chmod 755 /home/pepe/; ls -l /home
drwx------ 4 cloti secretaria 4096 jun 7 01:45 cloti
drwx------ 4 juan profesorado 4096 jun 7 01:45 juan
drwxr-xr-x 4 pepe profesorado 4096 jun 7 01:41 pepe
[cloti@ ~]$ cd /home/pepe/; ls -l
-
r
w-
r
--
r
-- 1 pepe profesorado 548 jun 7 02:20 Álgebras.doc
drwxr-xr-x
2 pepe profesorado 4096 jun 7 02:19 Exámenes
drwxr-xr-x
2 pepe profesorado 4096 jun 7 02:20 Física
drwxr-xr-x
2 pepe profesorado 4096 jun 7 02:20 Matemáticas
drwxr-xr-x
2 pepe profesorado 4096 jun 7 02:20 Prueba de acceso
-
r
w-
r
--
r
-- 1 pepe profesorado 897 jun 7 02:20 Tema 4 Funciones.docx
Primeramente, podemos observar como el usuario cloti intenta acceder a la carpeta pepe (/home/pepe), la cual le deniega el acceso. Seguidamente, nuestro protagonista Pepe ha decidido darle permisos de lectura y ejecución a Cloti, que posteriormente ha podido acceder igual que podría hacerlo Juan siendo éste de su mismo grupo.
Fuente: http://arrivalsec.wordpress.com/
0 Notaciones:
Publicar un comentario