GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué necesito un bit de 'ejecución' en el modo de archivo en los sistemas de archivos Unix?

Porque *nix no tiene el cerebro lo suficientemente dañado como para hacer que un archivo sea "ejecutable binario" si lo llama ".exe" o "ejecutable de script" si lo llama ".bat".

En Linux, el nombre del archivo no importa.

Y los permisos que le das a un archivo do asunto.

Qué tipo de tiene sentido. En mi humilde opinión...


El bit de ejecución se confunde un poco entre ser un permiso y un identificador de tipo de objeto.

Y no, no puede "copiar siempre" el archivo a su directorio de inicio:solo si puede leerlo.

Los archivos pueden ser ejecutables para usted, pero no legibles.

Tiene razón en que si un archivo es legible para usted pero no ejecutable para usted, puede copiarlo y voltear el bit de ejecución y usarlo. Quizás. Pero podría no funcionar. El ejecutable puede ser sensible al lugar donde está instalado. O el archivo puede depender de su bit raíz setuid.

No diseñaría un sistema de permisos de esa manera comenzando desde cero; no tiene mucho sentido. El permiso de ejecución estaría separado de un atributo de tipo ejecutable, y el permiso de ejecución no se sobrecargaría con el permiso de búsqueda (incluso si se almacenara de esa manera; la API no lo revelaría a nivel de máscara de bits).


Me sorprende que nadie haya mencionado los binarios que se ejecutan con privilegios especiales. Wireshark viene con un caso de uso del mundo real aquí:una de sus funciones principales es capturar el tráfico de la red, algo que normalmente solo puede hacer el root. Tiene sentido que desee permitir que ciertos usuarios capturen tráfico con Wireshark sin tener que darles acceso completo a la raíz, por lo que Wireshark viene con un binario llamado dumpcap que tenga las capacidades necesarias (CAP_NET_RAW y CAP_NET_ADMIN) habilitadas. Este binario es 0754 (rwxr-xr-- ) y su GID asociado es un grupo especial que instala Wireshark. De esta forma, cualquier usuario del grupo puede ejecutar el binario (generalmente a través de Wireshark) para capturar tráfico, y se ejecutará con los privilegios necesarios para hacerlo, pero un usuario que no esté en ese grupo no podrá porque no lo haría. No tengo permiso de ejecución. Todavía podrían copiarlo en su directorio de inicio, pero su copia no tendría las capacidades necesarias configuradas, por lo que en realidad no podría capturar ningún tráfico.


Linux
  1. Hashing de contraseñas y por qué lo necesitamos

  2. ¿Por qué usamos “./” (punto barra oblicua) para ejecutar un archivo en Linux/unix?

  3. ¿Ejecutar un comando donde se encuentra un archivo?

  4. ¿Por qué los sistemas operativos tienen límites de tamaño de archivo?

  5. ¿Cuál es el comando de Unix para averiguar qué archivo ejecutable corresponde a un comando determinado?

Cómo hacer un archivo ejecutable en Linux

Cómo convertir un archivo de Windows a un archivo UNIX

FSTAB y MTAB

Los 10 mejores sistemas operativos basados ​​en Unix

Comando AWK en Linux/Unix

Cómo editar archivos binarios en sistemas Unix