Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Programación C] Permiso denegado al ejecutar programa(Sol.)
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 239

PostPosted: Sat Mar 27, 2010 8:49 pm    Post subject: [Programación C] Permiso denegado al ejecutar programa(Sol.) Reply with quote

¡Hola!

Estoy tratando de aprender C y tras hacer un simple programa como el siguiente:

Code:

#include <stdio.h>

int main(void)
{
   printf("Hola mundo\n");
   return 0;
}


Y compilarlo con:

Code:

gcc -o hola hola.c


Lo trato de ejecutar con poniendo en la consola:
Code:

./hola


Pero obtengo (tanto como usuario normal como root) el siguiente error:
Quote:

$ ./hola
-bash: ./hola: Permiso denegado


La verdad es que no sé ni por donde empezar a tratar el problema. A ver si me podéis indicar por dónde empezar a buscar, ya que me parece muy raro que no consiga ejecutar nada compilado y luego compile el sistema sin problemas. La versión de gcc que tengo es la 4.4.3:
Quote:

Usando especificaciones internas.
Objetivo: x86_64-pc-linux-gnu
Configurado con: /var/tmp/portage/sys-devel/gcc-4.4.3/work/gcc-4.4.3/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.3 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.3/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.3 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.3/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.3/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.3/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --without-ppl --without-cloog --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --enable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --enable-cld --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.4.3/python --disable-libgcj --enable-languages=c,c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.4.3 p1.0'
Modelo de hilos: posix
gcc versión 4.4.3 (Gentoo 4.4.3 p1.0)


¡Saludos!


Last edited by Popolous on Tue Mar 30, 2010 7:20 pm; edited 1 time in total
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Sat Mar 27, 2010 9:04 pm    Post subject: Reply with quote

¿El directorio/partición donde creas el binario "hola" te permite ejecutar aplicaciones?, comprueba en tu /etc/fstab si tienes la opción "noexec". Es obvio pero comprueba los permisos/propietario del ejecutable.
_________________
Salu2.
Alguien muy acertadamente una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 239

PostPosted: Sat Mar 27, 2010 9:47 pm    Post subject: Reply with quote

Coghan:

Ahora que lo mencionas, en mi directorio home, que es desde donde trato de ejecutar esto, no me permitía tampoco utilizar archivos bash ejecutables. Los permisos del archivo hola son 775 y el propietario es mi usuario. En el archivo fstab no tengo la opción noexec en la partición donde reside mi /home....

¡Saludos!
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Sat Mar 27, 2010 10:03 pm    Post subject: Reply with quote

Cambia a /home y haz un ls -l para ver los permisos y el propietario del directorio de tu usuario.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 239

PostPosted: Sun Mar 28, 2010 12:19 pm    Post subject: Reply with quote

Acabo de mirar los permisos del directorio /home y aparentemente están bien:

Code:

/home $ ls -al
total 22
drwxr-xr-x  5 root   root   1024 nov 15 19:56 .
drwxr-xr-x 20 root   root   4096 dic  4 17:46 ..
drwxr-xr-x 45 juanjo users  4096 mar 28 14:08 juanjo
-rw-r--r--  1 root   root      0 nov  5 02:34 .keep
drwx------  2 root   root  12288 nov 11 11:58 lost+found
drwxr-xr-x  2 p2p    root   1024 nov 15 19:56 p2p


¡Saludos!
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Sun Mar 28, 2010 12:27 pm    Post subject: Reply with quote

Pues no se me ocurre que puede ser.
Por si acaso mira como me queda despues de compilar, observa que el ejecutable sale con la x, a ti deberia salirte igual.
Quote:
esteban@mimaquina ~ $ ls -l hola*
-rwxr-xr-x 1 esteban esteban 8125 mar 28 14:23 hola
-rw-r--r-- 1 esteban esteban 80 mar 28 14:23 hola.c

_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 239

PostPosted: Sun Mar 28, 2010 12:46 pm    Post subject: Reply with quote

Yo estoy más sorprendido que nadie...

Quote:

$ ls -l hola*
-rwxrwxr-x 1 juanjo juanjo 7864 mar 27 21:47 hola
-rw-rw-r-- 1 juanjo juanjo 75 mar 27 21:47 hola.c


Ni idea de por qué no lo hace. Como superusuario es exactamente lo mismo, tanto en mi directorio de usuario normal, como en el /root....

:?

¡Saludos!
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Sun Mar 28, 2010 1:13 pm    Post subject: Reply with quote

Se me ocurre que copies el binario "hola" al directorio /usr/bin y lo ejecutes desde allí, doy por entendido que los ejecutables en tu sistema funcionan bien dado que si no, no tendrías el sistema activo. Con esto descartamos que sea un problema de particiones marcadas como no ejecutables y puedes centrarte en buscar algún error en gcc.

También se me ocurre mirar en el kernel los formatos binarios:
Code:
CONFIG_ELF_CORE=y
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y

CONFIG_BINFMT_MISC=y
CONFIG_MISC_DEVICES=y
CONFIG_INPUT_MISC=y
CONFIG_MISC_FILESYSTEMS=y

_________________
Salu2.
Alguien muy acertadamente una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Sun Mar 28, 2010 2:00 pm    Post subject: Reply with quote

No se exactamente como afecta el directorio /tmp con permisos 1777 y que el usuario pertenezca al grupo wheel.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 239

PostPosted: Sun Mar 28, 2010 6:38 pm    Post subject: Reply with quote

Gracias, voy a probar lo que me decís a ver si es algo del kernel, que creo Coghan que vas a dar en el blanco, en un rato os lo digo.

@esteban_conde: tengo el directorio /tmp con esos permisos....Ahora estaba instalando Gentoo en un Netbook Acer Aspire One desde una Ubuntu...he compilado sin problemas el programa en Ubuntu y al ejecutarlo, sin errores...

¿Podrías por favor explicarme mejor por qué crees que puede tener algo que ver?

¡Saludos!
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Sun Mar 28, 2010 7:09 pm    Post subject: Reply with quote

Quote:
¿Podrías por favor explicarme mejor por qué crees que puede tener algo que ver?
Pues la verdad es que no, es una sensación, creo haber tenido ese mismo problema, haberlo resuelto y no recuerdo como.
Cuanto más quiero forzar la memoria mas se me niega.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Sun Mar 28, 2010 7:28 pm    Post subject: Reply with quote

Me he dado una vuelta por el kernel y creo que el archivo que compilamos es del tipo a.out, es decir si compilamos el archivo así: gcc hola.c
el resultado es un ejecutable llamado a.out y por tanto esa opción deberia estar habilitada en el kernel, el kernel en el que lo estoy viendo es un 2.6.20 y viene así:
Quote:
Executable file formats / Emulations --->

despegando el menu viene la opción aout binary support, echa un vistazo para ver si la tienes habilitada.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
upszot
Guru
Guru


Joined: 29 Apr 2009
Posts: 303
Location: Argentina

PostPosted: Sun Mar 28, 2010 9:05 pm    Post subject: Reply with quote

Popolous wrote:
Yo estoy más sorprendido que nadie...

Quote:

$ ls -l hola*
-rwxrwxr-x 1 juanjo juanjo 7864 mar 27 21:47 hola
-rw-rw-r-- 1 juanjo juanjo 75 mar 27 21:47 hola.c


Ni idea de por qué no lo hace. Como superusuario es exactamente lo mismo, tanto en mi directorio de usuario normal, como en el /root....

:?

¡Saludos!
Hola... me parece que encontre el error... el archivo compilado es "hola.c" y ese no tiene permiso de ejecucion "x"

saludos
_________________
---------------------------------------
Gentoo >> Dell XPS M1530 - T8300 - 4gb - 8600gt 256
ubuntu + xp >> Athon 2000+xp - 1gb - 6600gt 128bt
dd-wrt v24 >> linksys wrt54gl v1.1
android 2.3 (Miui) >> Motorola Defy
Back to top
View user's profile Send private message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 239

PostPosted: Mon Mar 29, 2010 8:06 am    Post subject: Reply with quote

¡Hola!

El archivo hola.c es el código fuente. El compilado se llama hola, sin más y tiene permisos de ejecución para todo el mundo...

¡Saludos!
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Mon Mar 29, 2010 8:44 am    Post subject: Reply with quote

¡Eh! popolous no se si has leido mi anterior post, compila con la orden gcc hola.c sin darle nombre al archivo, si todo va bien deberias obtener un archivo llamado a.out que es el equivalente a tu hola luego ejecutalo a ver que pasa.
En tu kernel deberias tener la obción de seleccionar los formatos de ejecutables (ejecutable file formats), si no ha cambiado la cosa serian tres elf (ejecutable and linking files), aout (una herencia de fat32) y misc binaries, en mi compilación del kernel tengo seleccionados los tres <*>.
No se por que creo que va a ser eso lo que hace que no se te ejecuten los archivos a.out.
Suerte.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
i92guboj
Moderator
Moderator


Joined: 30 Nov 2004
Posts: 10089
Location: Córdoba (Spain)

PostPosted: Mon Mar 29, 2010 9:43 am    Post subject: Reply with quote

Por favor, publica el resultado de "mount | grep home".

No creo que los formatos ejecutables tengan nada que ver por varias razones. En primer lugar gcc por defecto hoy día debería producir ejecutables ELF, independientemente del nombre que tenga el archivo de salida, en segundo lugar, si el sistema no soporta el código objeto contenido en el archivo y no se trata de algo que el shell pueda interpretar entonces el error debería ser del tipo "instrucción ilegal" o algo por el estilo.

Asumiendo que los permisos y el par grupo:usuario son correcto el problema debería estar en el sistema de ficheros (ya sea por noexec, ya sea por corrupción o algún otro problema más extraño).
_________________
Gentoo Handbook | My website
Back to top
View user's profile Send private message
codestation
Tux's lil' helper
Tux's lil' helper


Joined: 09 Nov 2008
Posts: 126
Location: /dev/negi

PostPosted: Mon Mar 29, 2010 1:47 pm    Post subject: Reply with quote

Popolous wrote:
Coghan:

Ahora que lo mencionas, en mi directorio home, que es desde donde trato de ejecutar esto, no me permitía tampoco utilizar archivos bash ejecutables. Los permisos del archivo hola son 775 y el propietario es mi usuario. En el archivo fstab no tengo la opción noexec en la partición donde reside mi /home....

¡Saludos!


La opción "user" del fstab también implica noexec, así que asegúrate que no la tengas como opción de montaje en /home
_________________
Just feel the code...
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Mon Mar 29, 2010 5:30 pm    Post subject: Reply with quote

codestation wrote:
La opción "user" del fstab también implica noexec, así que asegúrate que no la tengas como opción de montaje en /home

Efectivamente lo dice la pagina man de mount y tiene que ser algo así ya que lo que yo sugeria mas arriba no es pues he hecho la prueba de quitar el soporte aout del kernel y me deja correr el ejecutable.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1536

PostPosted: Mon Mar 29, 2010 6:24 pm    Post subject: Reply with quote

Quote:
esteban@mimaquina ~ $ ./hola
-bash: ./hola: Permiso denegado

Reproducido el error añadiendo user al cuarto campo de la linea de montaje de /home en fstab.
_________________
Saludos a tod@s, Esteban.
Back to top
View user's profile Send private message
Popolous
Apprentice
Apprentice


Joined: 04 Aug 2003
Posts: 239

PostPosted: Tue Mar 30, 2010 7:20 pm    Post subject: Reply with quote

¡Hola!

Efectivamente, como siempre habéis dado en el clavo:

mount | grep home wrote:

$ mount | grep home
/dev/sda7 on /home type ext4 (rw,noatime)
/dev/Toshiba1 on /home/juanjo type ext4 (rw,noexec,nosuid,nodev,noatime)


Voy a quitarle la opción user del archivo fstab que es el que está dando la brasa. Mil gracias de nuevo compañeros, no sé qué haría sin vuestra ayuda....

¡Saludos!
Back to top
View user's profile Send private message
rgrajales.biotech
n00b
n00b


Joined: 05 May 2010
Posts: 4

PostPosted: Wed May 05, 2010 11:30 am    Post subject: holap Reply with quote

hola chicos, muy agradecido puesto tengo el mismo problema y me alegra que le hayan encontrado solucion, mi preunta es, como hago para eliminar el "user" ese que da error??? que comandos uso y que pasos sigo para hacerlo??

de antemano gracias.... :D

DLB.....
Back to top
View user's profile Send private message
i92guboj
Moderator
Moderator


Joined: 30 Nov 2004
Posts: 10089
Location: Córdoba (Spain)

PostPosted: Thu May 06, 2010 8:48 am    Post subject: Reply with quote

Solo tienes que editar el archivo /etc/fstab con el editor de texto que prefieras y asegurarte de no tener "user" o "noexec" en la línea que monta la partición afectada. Necesitas permisos de root para editar dicho archivo.
_________________
Gentoo Handbook | My website
Back to top
View user's profile Send private message
rgrajales.biotech
n00b
n00b


Joined: 05 May 2010
Posts: 4

PostPosted: Thu May 06, 2010 2:32 pm    Post subject: /etc/fstab Reply with quote

ok, primero que nada, gracias :D

segundo, cmo llego a ese archivo, pongo en consola "/etc/fstab" y me sale : permiso denegado, cmo hago para obtener ese permiso? lo estoy haciendo bien? estoy haciendo algo mal?

disculpa si son muy tontas mis preguntas, pero la verdad, estoy empezando en esto y quiero desligarme por completo de windows....

gracias nuevamente.... :D
Back to top
View user's profile Send private message
rgrajales.biotech
n00b
n00b


Joined: 05 May 2010
Posts: 4

PostPosted: Thu May 06, 2010 2:40 pm    Post subject: sudo -s Reply with quote

encontre en una pagina que conseguia permisos de super usuario, con "sudo -s" y lo hago, introduzco, mi contraseña, y me sale root@nombre de usuario-laptop: pero al poner "/etc/fstab" denuevo me dice: "permiso denegado" :(

gracias de antemano... :D
Back to top
View user's profile Send private message
i92guboj
Moderator
Moderator


Joined: 30 Nov 2004
Posts: 10089
Location: Córdoba (Spain)

PostPosted: Thu May 06, 2010 2:50 pm    Post subject: Reply with quote

Tienes que abrir dicho archivo en un editor de text, como ya dije arriba, escoge el que tu prefieras. En Gentoo nano viene instalado por defecto. También puedes usar vim o cualquier otro, ya sea en modo gráfico o de texto. Asegúrate de ejecutar el editor como root porque si no no te dejará guardar el archivo tras editarlo. /etc/fstab es usualmente legible por todos los usuarios, pero solo root puede modificar el archivo.
_________________
Gentoo Handbook | My website
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum