GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué los archivos no pueden ser manipulados por inode?

Razones de seguridad:para acceder a un archivo, necesita permiso en el archivo ASÍ COMO permiso para buscar todos los directorios desde la raíz necesarios para acceder al archivo. Si pudiera acceder a un archivo por inodo, podría omitir las comprobaciones en los directorios que lo contienen.

Esto le permite crear un archivo al que pueden acceder un conjunto de usuarios (o un conjunto de grupos) y nadie más:cree directorios a los que solo puedan acceder los usuarios (un directorio por usuario), y luego vincule el archivo a todos esos directorios:cualquiera puede acceder al archivo en sí, pero solo puede acceder alguien que tenga permisos de búsqueda en uno de los directorios a los que está vinculado.


Algunos sistemas operativos lo hacen tener esa facilidad. Por ejemplo, OS X lo necesita para admitir Carbon File Manager, y en Linux puede usar debugfs . Por supuesto, puede hacerlo en cualquier UNIX desde la línea de comandos a través de find -inum , pero la verdadera razón por la que no puede acceder a los archivos por inodo es que no es particularmente útil. lo hace eludir los permisos de archivo, porque si hay un archivo que puede leer en una carpeta que no puede leer ni ejecutar, entonces abrir el inodo le permite descubrirlo.

La razón por la que no es muy útil es que necesita encontrar un número de inodo a través de un *stat() llamada, momento en el que ya tienes el nombre del archivo (o un fd abierto)... o necesita adivinar el inum.


En respuesta a su comentario:para "pasar un archivo", puede usar fd pasando sockets AF_LOCAL por medio de SCM_RIGHTS (ver man 7 unix ).


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. ¿Eliminar todos los archivos/directorios excepto un archivo?

  3. ¿Se pueden recuperar los archivos sobrescritos?

  4. ¿Por qué no puedo crear archivos de más de 2 GB en Linux?

  5. ¿Cómo puedo editar varios archivos en VIM?

Comando Ls en Linux (Lista de archivos y directorios)

Cómo copiar archivos y directorios en Linux

Cómo mover archivos y directorios en Linux (comando mv)

Cómo copiar archivos y directorios en la terminal de Linux

Comando Stat:mostrar atributos de archivos y directorios

¿Por qué no puedo eliminar este archivo como root?