2013-04-18 5 views
5

Ho compilato la mia fonte C utilizzando cc test.c e ha generato il file a.out.Impossibile eseguire i file compilati - bash: ./a.out: Autorizzazione negata. (Ho provato chmod)

Tuttavia quando l'eseguo ottengo questo errore -

bash: ./a.out: Permission denied 

La mia fonte non è nella home directory, è sulla diversa partizione FAT-32, così ho montato l'unità in cui il codice sta usando il seguente comando -

$ udisks --mount /dev/sda7 --mount-options umask=022 
Mounted /org/freedesktop/UDisks/devices/sda7 at /media/48E9-FD53 
$ cd /media/48E9-FD53/C 

Poi ho compilare il mio codice utilizzando cc

ho anche provato gcc. Ma ancora ottengo lo stesso errore.

Quindi ho fatto - chmod +x a.out, ancora lo stesso problema. Anche con (chmod 755 a.out) e chmod u+x a.out.

Ho anche provato a compilare ed eseguire il programma utilizzando sudo.

Ho anche provato - sudo chown sannidhya:sannidhya a.out.

Ho provato ogni cosa che ho trovato dopo aver fatto su Google, ancora non riuscivo a farlo funzionare.

Come è possibile eseguire il file .out (senza spostarlo nella directory principale)?

Nota - Sto usando Ubuntu 12.04 LTS.

Ma una strana cosa qui è, anche dopo l'esecuzione chmod +x a.out, a correre - ls -l a.out, ho Get-

-rw-r--r-- 1 

anche quando controllo le proprietà di a.out, sotto Permessi scheda, quando ho controllare Allow executing file as program, il segno di spunta appare e scompare rapidamente.

+0

Hai provato 'sudo chmod + x a.out' – MOHAMED

+0

@MOHAMED ho fatto ... – ShuklaSannidhya

+0

Questa è una domanda per http://unix.stackexchange.com –

risposta

8

Sembra che la partizione sia stata montata con il set di flag no-exec. Dovrete rimontare la partizione:

sudo mount -o remount -o exec /dev/sda7 
+0

Continua a ricevere lo stesso errore. Permesso negato. – ShuklaSannidhya

+0

puoi aggiungere l'output di 'mount | grep sda7'? – hek2mgl

+0

'/ dev/sda7 on/media/48E9-FD53 tipo vfat (rw, nosuid, nodev, uid = 1000, gid = 1000, shortname = mixed, dmask = 0077, utf8 = 1, showexec, fl ush, uhelper = udisks) ' – ShuklaSannidhya

3

direi che si sta facendo tutto questo su un/FAT partizione NTFS che, probabilmente, si condivide con le finestre. Le autorizzazioni chmod non funzionano su.

È necessario spostarlo su una partizione ext4 (o Linux equivalente) e quindi eseguire le modifiche alle autorizzazioni.


Else, per una partizione/FAT NTFS, è possibile impostare le autorizzazioni di for the entire partition, al momento di montare. Per esempio,

sudo umount /mnt/my_partition 
sudo mount -t vfat -o rw,auto,user,fmask=0000,dmask=0000 /dev/sda7 /mnt/my_partition 

Questo darebbe 777 su tutti i file e le directory (eeeek!), Ma una volta impostato, non è possibile modificarli fino a rimontare.

+0

È una partizione FAT32 ... – ShuklaSannidhya

+0

@Sann Stessa logica. È possibile applicare le autorizzazioni all'intera partizione solo quando si esegue il mount, se non è una partizione nativa di Linux. Spostalo in una partizione linux per far funzionare 'chmod'. –

+0

Cosa devo passare per il parametro 'mount point'? Sto ricevendo questo errore - 'mount: mount point/media/48E9-FD53 non esiste' – ShuklaSannidhya

Problemi correlati