View Full Version : [C] Comportamento strano gcc
Ciao a tutti!!!! son nuovo del forum :D !
Ho aperto una nuova discussione perche e un po di tempo che litigo con il compilatore gcc :muro: .....e non ho trovato nessuno in rete che potesse darmi una mano:cry:
Il problema e semplicemente questo:
non ho i permessi di eseguire gli eseguibili compilati da me!!!
...Ovviamente i permessi utente son tutti a posto e questo succede anche se sono root....
qualcuno sa darmi qualche dritta??
ilsensine
22-07-2008, 16:51
Possibili cause:
- compili su un file system montato con noexec
- qualche improbabile policy restrittiva di selinux & co
oppure, come credo
- ti stai semplicemente dimenticando di prependere "./" al nome dell'eseguibile (su linux la directory corrente non è nel path!)
uh che velocita grande!!!:D
mm....allora
- per quanto riguarda il filesystem le uniche opzioni che uso sono rw,user
quindi questa possibilita l' avevo gia scartata
-per quanto riguarda il path no lo sapevo gia...e poi non direbbe:
nome-dell-eseguibile: Permission Denied
-invece le policy e SELinux....beh diciamo che questo e un aspetto che devo ancora approfondire....considera che adesso scrivo da una debian appena installata (sapevo che le debian avevano i servizzi selinux disabilitati di default:rolleyes: ) questo problema ho iniziato ad averlo quando e arrivato gcc-4.3....
ilsensine
22-07-2008, 17:15
Puoi scrivere passo passo la sequenza di comandi che fai dalla compilazione all'esecuzione?
Inoltre, cosa riporta
file <nome dell'eseguibile>
ma guarda il fatto e che non mi da molto output cmq:
$ gcc -o agenzia ./agenzia.c ./viaggi.h
(restituisce il prompt... compilazione riuscita)
$ ./agenzia
bash: ./agenzia: Permission denied
$
ovviamente andando a vedere i permessi dell eseguibile appena creato son tutti a posto: -rwxr-xr-x
questo ovviamente e il problema di base....poi in conseguenza a questo mi fallisce ogni applicativo che compila ed esegue automaticamente,le chiamate di make config ecc ecc....:muro: :muro:
e questo e la descrizione del eseguibile
$ file ./agenzia
./agenzia: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
ilsensine
22-07-2008, 17:43
mah
giancarlo@ilsensine:~$ echo 'void main(void) { printf("ciao\n"); }' | gcc -w -xc - && ./a.out
ciao
giancarlo@ilsensine:~$ file a.out
a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
giancarlo@ilsensine:~$ gcc -v 2>&1|grep gcc\ version
gcc version 4.3.1 (Debian 4.3.1-2)
Sei sicuro che non è un problema a livello di file system? Ci vedo "user", quindi è un dispositivo removibile?
Prova ad aggiungere esplicitamente "exec" ai parametri di mount (oppure esegui mount -o remount,exec <mountpoint> )
Se copi l'eseguibile ad es. in /tmp, da lì lo puoi lanciare?
ilsensine
22-07-2008, 17:46
$ file ./agenzia
./agenzia: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
Domanda lammah (ma a questo punto ho finito i suggerimenti): la tua _è_ una macchina a 64 bit, con in esecuzione un kernel a 64 bit e l'userspace a 64 bit giusto?
no sono dischi fissi..uso l'opzione user perche per ora devo ancora mettere a postoi tutto il sistema:D
...e cmq no lo provato adesso non esegue anche se ricompilo in /tmp
Si la mia e una macchina a 64 bit con un kernel a 64 bit precompilato...
come faccio a verificare che anche l'userspace sia a 64 bit??? e cmq credo di si perche e tutto nuovo di installazione da cd di debian etch amd64
per quanto riguarda l'esplicitare l'opzione exec...a rigor di logica almeno nel file system di root (quello montato in / ) dovrebbe essere attivato di default no??:mc: cmq adesso provo..
ilsensine
22-07-2008, 18:01
Scusa ma etch non ha il gcc 4.3...o sbaglio?
ilsensine
22-07-2008, 18:03
come faccio a verificare che anche l'userspace sia a 64 bit??? e cmq credo di si perche e tutto nuovo di installazione da cd di debian etch amd64
Basta un
file /bin/bash
ma se è amd64 sicuramente è a 64 bit...
per quanto riguarda l'esplicitare l'opzione exec...a rigor di logica almeno nel file system di root (quello montato in / ) dovrebbe essere attivato di default no??:mc:
DECISAMENTE direi di sì...
Se vuoi, inviami un hello word compilato che provo a eseguirlo qui...hai 3 minuti prima che esco
si scusa e debian lenny....
come te lo mando il file???(son super niubbo del forum!!!!)
ilsensine
22-07-2008, 18:07
"gestisci allegati", nella finestra di risposta. Accetta solo alcune estensioni (tipo .gz)
ok...spero arrivi ti ho messo solo l'eseguibile il codice lo conoscerai gia:D
ilsensine
22-07-2008, 18:10
WorksForMe(tm)
Lenny anche qui
ilsensine
22-07-2008, 18:11
Se esegui questo cambia qualcosa?
/lib/ld-linux-x86-64.so.2 ./hello
Guarda...non so proprio che dire....aggiungendo l'opzione exec alla partizione che ospita la home adesso esegue su tutte le partizioni!!! ...ci son impazzito per piu di 6 mesi :muro: :muro:
adesso cerchero di capire un po il perche.....
grazie mille per il supporto...in un oretta mi hai risolto 10000 problemi!!!!!!!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.