no se pueden ejecutar binarios o scripts de shell

2

Estoy ejecutando las pruebas de Debian y no puedo ejecutar ningún script binario o de shell. Sigo recibiendo "No existe ese archivo o directorio" para los archivos binarios y "Permiso denegado" para los scripts de shell ejecutables. El umask es el predeterminado y no he engañado con los caminos. Además, soy consciente de esta Pregunta, pero no funciona para mí: compilé mi código en esta máquina y traté de ejecutarlo en la misma máquina. Además, todos mis scripts de shell tienen el shebang correcto.

¿Algún consejo?

Editar: No estoy ejecutando ningún tipo de aplicación de Armor o SELinux.

hyperboreean
fuente
¿Puedes agregar un poco más de información? Lista larga el directorio? Lista larga de sus scripts? Ejemplo de scripts que se ejecutan? ¿Salida completa desde la línea de comandos cuando ejecuta un script?
bedwyr
¿Funcionan los comandos comunes del sistema (como ls, cd o mv)?
dag729
@ dag729: sí, lo hacen
hyperboreean
8
Verifique si el sistema de archivos en el que se encuentra está montado con la opción noexec. Además, copie y pegue una sesión de su terminal en la pregunta aquí, para que la gente no tenga que hacer todo tipo de preguntas. O incluso tomar una captura de pantalla de su terminal ...
nos
3
Ok, reemplazé las entradas de fstab con el valor predeterminado y ahora está funcionando. Gracias, no, si está agregando el comentario como respuesta, puedo darle crédito por ello.
hyperboreean

Respuestas:

1

Más información incluyendo copiar / pegar de una sesión de terminal sería útil. Pero lo que hay que buscar de inmediato es que los binarios y los scripts tienen los permisos correctos (generalmente el modo 0755). Comprueba que la línea shebang en tus scripts apunta a un binario válido. Ejecute el comando "archivo" en un binario para asegurarse de que sea un verdadero binario para su arquitectura. Seguramente no todos sus archivos binarios obtienen "ningún archivo o directorio de este tipo", de lo contrario no habría podido compilar su código. Pruebe el comando "cuál" para ver si su shell puede encontrar el binario que está intentando ejecutar (por ejemplo, "qué fecha" para ver qué comando se ejecutaría si escribió "fecha") y para asegurarse de que encuentre el que está buscando. cree que está intentando ejecutarse (a veces, un comando aparece antes en su RUTA y no lo sabe).

Marnix A. van Ammers
fuente
Vaya, veo que ya encontraste el problema y aparentemente se debió a opciones de montaje incorrectas en el sistema de archivos. Me alegra que hayas encontrado el problema.
Marnix A. van Ammers
0

Para archivos binarios, es un problema con el archivo o con el shell. Intenta ejecutarlo sh o con tcsh o volver a descargarlo / reinstalarlo (si lo hizo usted mismo, puede intentar recompilarlo). bash en sí es un binario y si puede acceder al shell, puede acceder a archivos binarios, y el problema está en el archivo y / o en el shell.

Para los scripts de shell, si el error es "Permiso denegado", agregaría el privilegio de ejecución usando chmod a+x filename. El privilegio de ejecución es una forma de protección dada por los sistemas UNIX. No puede ejecutar scripts o binarios sin este privilegio.

Alessandro Mascolo
fuente