2013-04-18 2 views
5

मैंने cc test.c का उपयोग करके अपना सी स्रोत संकलित किया है, और यह a.out फ़ाइल उत्पन्न करता है।संकलित फ़ाइलों को चलाने में असमर्थ - bash: ./a.out: अनुमति अस्वीकार कर दी गई। (मैंने chmod की कोशिश की है)

लेकिन जब मैं इसे चलाने मैं इस त्रुटि मिलती है -

bash: ./a.out: Permission denied 

मेरे स्रोत, घर निर्देशिका में नहीं है, यह अलग फैट -32 विभाजन पर है, इसलिए मैं ड्राइव घुड़सवार किया है जो कोड में निम्न आदेश का उपयोग कर रहा है -

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

तब मैं अपने कोड cc

का उपयोग कर मैं भी gcc की कोशिश की है संकलन। लेकिन फिर भी मुझे एक ही त्रुटि मिलती है।

फिर मैंने किया - chmod +x a.out, अभी भी वही समस्या है। इसके साथ (chmod 755 a.out) और chmod u+x a.out के साथ।

मैंने sudo का उपयोग करके प्रोग्राम को संकलित और निष्पादित करने का भी प्रयास किया है।

मैंने भी कोशिश की है - sudo chown sannidhya:sannidhya a.out

मैंने गुगलिंग के बाद जो कुछ भी पाया, मैंने अभी भी काम करने के लिए इसे प्राप्त नहीं किया है।

मैं .out फ़ाइल कैसे चला सकता हूं (इसे होम निर्देशिका में ले जाने के बिना)?

नोट - मैं उबंटू 12.04 एलटीएस का उपयोग कर रहा हूं।

लेकिन एक अजीब बात यहाँ chmod +x a.out चलाने के बाद भी, है, चल रहा है पर - ls -l a.out, मैं

-rw-r--r-- 1 

भी जब मैं a.out के गुणों की जांच मिल-, अनुमतियां तहत टैब, जब मैं Allow executing file as program देखें, टिक दिखाई देता है और जल्दी गायब हो जाता है।

+0

तुम कोशिश किया 'sudo chmod + x a.out' – MOHAMED

+0

@MOHAMED मैंने वह किया ... – ShuklaSannidhya

+0

यह http://unix.stackexchange.com –

उत्तर

8

ऐसा लगता है कि आपने विभाजन को नो-एक्जिक फ्लैग सेट के साथ घुमाया है।

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

अभी भी वही त्रुटि मिल रही है। अनुमति नहीं मिली। – ShuklaSannidhya

+0

क्या आप 'माउंट |' का आउटपुट जोड़ सकते हैं grep sda7'? – hek2mgl

+0

'/ dev/sda7 चालू/मीडिया/48E9-FD53 प्रकार vfat (आरडब्ल्यू, nosuid, nodev, uid = 1000, gid = 1000, shortname = मिश्रित, dmask = 0077, utf8 = 1, showexec, fl ush, uhelper = udisks) ' – ShuklaSannidhya

3

मुझे लगता है कि चाहते हैं कि आप एक NTFS/FAT विभाजन कि आप शायद खिड़कियों के साथ साझा पर यह सब कर रहे हैं: आप विभाजन को पुन: माउंट करना होगा। chmod अनुमतियाँ उन पर काम नहीं करते हैं।

आपको इसे ext4 (या समतुल्य लिनक्स) विभाजन में ले जाना चाहिए, और उसके बाद अनुमति परिवर्तन करना चाहिए।


वरना, एक NTFS/FAT विभाजन के लिए, आपको अनुमति for the entire partition बढ़ते के समय निर्धारित करते हैं,। उदाहरण के लिए,

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

यह आप सभी निर्देशिका और फाइलों पर 777 देना होगा (eeeek!), लेकिन एक बार निर्धारित करते हैं, तो आप उन्हें आप तक रिमाउंट संशोधित नहीं कर सकते।

+0

यह एक FAT32 विभाजन है ... – ShuklaSannidhya

+0

@Sann वही तर्क। जब आप माउंट करते हैं तो आप केवल पूरे विभाजन में अनुमतियां लागू कर सकते हैं, यदि यह लिनक्स मूल विभाजन नहीं है। काम करने के लिए 'chmod' के लिए इसे linux विभाजन में ले जाएं। –

+0

मैं 'माउंट पॉइंट' पैरामीटर के लिए क्या पास करूं? मुझे यह त्रुटि मिल रही है - 'माउंट: माउंट पॉइंट/मीडिया/48E9-FD53 मौजूद नहीं है' – ShuklaSannidhya

संबंधित मुद्दे