Eliminar el bit de ejecución de forma recursiva en / tmp con chmod -R -x /tmp
no impide la ejecución de archivos desde / tmp.
Primero, solo se aplica a los archivos actualmente en / tmp. Los nuevos archivos creados después de ejecutar chmod no tendrán restricciones.
Segundo, si elimina el bit de ejecución del archivo de otro usuario, no impedirá que el usuario lo ejecute. El usuario puede agregar el bit de ejecución después de que lo cambie.
En tercer lugar, el bit de ejecución en los directorios se llama "búsqueda" y tiene un significado diferente al de los archivos. Dada esta estructura de directorios:
.:
total 8
drwxrwxr-x 2 root root 4096 ago 25 13:54 dir1
drwxrwxr-x 2 root root 4096 ago 25 13:54 dir2
./dir1:
total 0
-rw-rw-r-- 1 root root 0 ago 25 13:54 file1
-rw-rw-r-- 1 root root 0 ago 25 13:54 file2
./dir2:
total 0
-rw-rw-r-- 1 root root 0 ago 25 13:54 file1
-rw-rw-r-- 1 root root 0 ago 25 13:54 file2
Si elimina el bit de "búsqueda" de dir1 con chmod -x dir1
, obtendrá esto:
$ chmod -x dir1
$ ls -l dir1
ls: no se puede acceder a 'dir1/file2': Permiso denegado
ls: no se puede acceder a 'dir1/file1': Permiso denegado
total 0
-????????? ? ? ? ? ? file1
-????????? ? ? ? ? ? file2
$ cat dir1/file1
cat: dir1/file1: Permiso denegado
Si haces esto en / tmp obtendrás un directorio temporal inutilizable, y varios programas se bloquearán en ti.
Por lo tanto, la opción de montaje noexec
no puede ser reemplazada por chmodding.
Si realmente quieres hacerlo sin agregar una nueva partición 1 o usar un archivo tmpfs / loop-mount (como lo sugiere Shane), puedes probar el bind-fu en esta respuesta de SF
1 : También diría que no tendrías este problema si estuvieras usando volúmenes lógicos;)