2013-04-18 9 views
5

Skompilowałem moje źródło C używając cc test.c i wygenerowałem plik a.out.Nie można uruchomić skompilowanych plików - bash: ./a.out: Odmowa uprawnień. (Próbowałem już chmod)

Jednakże gdy uruchomię go uzyskać ten błąd -

bash: ./a.out: Permission denied 

Moje źródło nie znajduje się w katalogu głównym, to na innej partycji FAT-32, więc mam zamontowany napęd, w którym kod jest za pomocą następującego polecenia -

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

Potem skompilować mojego kodu przy użyciu cc

próbowałem zostały również gcc. Ale wciąż mam ten sam błąd.

Potem zrobiłem - chmod +x a.out, wciąż ten sam problem. Również z (chmod 755 a.out) i chmod u+x a.out.

Próbowałem zostały również sporządzania i wykonywania programu za sudo.

Ja również próbowałem - sudo chown sannidhya:sannidhya a.out.

Próbowałem każdej rzeczy, które znalazłem po googlowania, wciąż nie może zmusić go do pracy.

Jak mogę uruchomić .out plik (bez przenoszenia go do katalogu domowego)?

Uwaga - Używam Ubuntu 12.04 LTS.

Ale dziwne tu jest, nawet po uruchomieniu chmod +x a.out, na biegu - ls -l a.out, ja GET-

-rw-r--r-- 1 

także kiedy sprawdzić właściwości a.out pod Uprawnienia kartę, kiedy sprawdź Allow executing file as program, pojawi się zaznaczenie i szybko znika.

+0

Próbowałaś 'sudo chmod + x a.out' – MOHAMED

+0

@MOHAMED Zrobiłem to ... – ShuklaSannidhya

+0

To jest pytanie dla http://unix.stackexchange.com –

Odpowiedz

8

Wygląda na to, że zamontowałeś partycję z ustawioną flagą no-exec. Trzeba będzie zamontować partycję:

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

Nadal pojawia się ten sam błąd. Odmowa uprawnień. – ShuklaSannidhya

+0

możesz dodać wyjście 'mount | grep sda7'? – hek2mgl

+0

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

3

Przypuszczam robisz to wszystko na NTFS/FAT partycji że prawdopodobnie dzielić się z okien. uprawnienia chmod nie działają na nich.

Należy przenieść go do partycji ext4 (lub odpowiednik Linux), a następnie wykonać zmiany uprawnień.


Else, na partycji NTFS/FAT, należy ustawić uprawnienia for the entire partition, w czasie montażu. Na przykład

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

To daje 777 na wszystkich katalogów i plików (eeeek!), Ale raz ustawione, nie można modyfikować je do ponownego podłączenia.

+0

To jest partycja FAT32 ... – ShuklaSannidhya

+0

@Sann Ta sama logika. Możesz zastosować uprawnienia tylko do całej partycji podczas montowania, jeśli nie jest to natywna partycja linuksowa. Przenieś go do partycji linuksowej, aby 'chmod' działał. –

+0

Co mam przekazać dla parametru 'punkt instalacji'? Otrzymuję ten błąd - 'mount: punkt montowania/nośnik/48E9-FD53 nie istnieje' – ShuklaSannidhya

Powiązane problemy