Quién puede hacer qué en un sistema
El control de acceso decide quién puede leer, cambiar o ejecutar cada recurso de un sistema. Su regla de oro es el mínimo privilegio: cada cuenta recibe solo lo que su trabajo necesita y nada más.
En una tienda, quien atiende la caja no necesita ver las nóminas. Si pudiera verlas, un descuido suyo sería un problema de todos.
Al final de esta lección
Nota
Puedo decidir quién debe poder leer, escribir o ejecutar cada recurso con el mínimo privilegio.
Palabras clave
| Palabra | Qué significa |
|---|---|
| Control de acceso | decidir quién puede hacer qué con un recurso |
| Permiso | una acción permitida: leer, escribir o ejecutar |
| Rol | un conjunto de permisos para un trabajo |
| Mínimo privilegio | dar solo los permisos que hacen falta |
| Dueño | la cuenta propietaria de un archivo |
| Grupo | varias cuentas que comparten permisos |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Cada permiso responde quién, qué y sobre qué
Un permiso une tres cosas: una cuenta, una acción y un recurso. En Linux, el modo rwxr-x--- son nueve letras en tres grupos de tres.
El primer grupo es para el dueño, el segundo para el grupo del archivo y el tercero para todos los demás. En cada grupo, r es leer, w escribir y x ejecutar. Un guion es que no se permite.
Ejemplo: se lee el modo rwxr-x---
| Quién | Letras | Puede |
|---|---|---|
| El dueño | rwx | Leer, escribir y ejecutar |
| El grupo | r-x | Leer y ejecutar, no escribir |
| Todos los demás | --- | Nada |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un rol agrupa los permisos de un trabajo
Dar permisos cuenta por cuenta es lento y se olvida. Por eso se crean roles o grupos. Alguien de ventas entra en el grupo ventas y recibe lo que ese grupo puede hacer.
Si cambia de trabajo, se cambia su grupo y los permisos viejos desaparecen con él.
El mínimo privilegio reduce el daño
Con el mínimo privilegio, una cuenta solo puede hacer su trabajo. Si la cuenta se roba o comete un error, el daño llega hasta donde llegaban sus permisos.
Mira tres rutas de la máquina y compara qué tan cerradas están. Las tres son del sistema, no del laboratorio.
Mira el modo de /etc/shadow
stat -c '%A %U %G' /etc/shadowSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mira el modo de la carpeta de root
stat -c '%A %U %G' /rootSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Cada ruta tiene el acceso que necesita
La primera línea es -rw-r----- root shadow: solo root escribe y solo el grupo shadow lee. La segunda es drwx------ root root: la carpeta de root es solo suya.
No todo debe ser cerrado. La carpeta /tmp es donde cualquier programa deja archivos temporales, así que debe ser abierta para todos.
Mira el modo de /tmp
stat -c '%A %U %G' /tmpSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Un error frecuente
Advertencia
Mucha gente cree que dar permiso a todos, el modo 777, arregla un error de acceso. Quita el error, pero abre el recurso a cualquiera. La solución correcta es dar el permiso justo a la cuenta o al grupo que lo necesita.
La t de /tmp impide borrar lo ajeno
La tercera línea es drwxrwxrwt root root. Todos pueden escribir en la carpeta, pero la t final, llamada bit sticky, hace que solo el dueño de un archivo pueda borrarlo.
Es un ejemplo de mínimo privilegio dentro de una carpeta abierta: todos usan el sitio, y nadie borra lo ajeno.