2009-06-17 32 views
8

不完全是編程相關的...權限被拒絕經營自己的程序(Ubuntu的)

我已經建立的程序,一些基本的OpenGL,然後運行它和sh:/布拉布拉許可被拒絕。我怎樣才能讓它更便宜?

程序只是使旋轉方和我有Ubuntu的9.4

才發現,即使是INT主要(){}不起作用

+0

程序文件的權限是什麼? – 2009-06-17 11:08:49

+0

嘗試chmod 777:P – KdgDev 2009-06-17 11:17:53

+0

您輸入的命令到底是什麼? – Svante 2009-06-17 12:06:48

回答

1

幾個問題:

  1. 是在文件上正確設置權限?
  2. 任何解釋器設置的路徑是否正確?
6

你是如何編譯它的?你能發佈makefile嗎?如果你跑

chmod +x myPorgram 
./myProgram 

有什麼變化?

1

除了上面提到的chmod + x文件,另一個問題可能是一個缺失的庫。要檢查所需的庫,使用LDD:

$ ldd /bin/sh 
    linux-vdso.so.1 => (0x00007fffb43fe000) 
    libc.so.6 => /lib/libc.so.6 (0x00007fc4abe11000) 
    /lib64/ld-linux-x86-64.so.2 (0x00007fc4ac183000) 

如果這些線之一顯示缺少庫,你就會知道需要安裝才能運行您的程序是什麼。

如果您的程序是腳本(shell,perl,python或其他基於文本的程序),另一種可能性是。第一行如下所示:

#!/usr/bin/perl 

如果找不到該文件,您將收到權限被拒絕的錯誤。

0

嘗試使用strace執行命令來跟蹤它所做的成功的系統調用以及停止的位置。

這是你將如何啓動它,

strace ./blabla 

你得到一個拒絕「權限」錯誤或類似「EXEC格式錯誤」?與chmod +rx在文件上,你不應該擊中「權限被拒絕」。

0

您還應該確保您的用戶名在視頻組中。檢查/ etc/group並確保您的用戶名出現在「視頻」行中。

5

檢查掛載點,看看它是否如安裝運行NOEXEC「摩的」

1

試圖在64位系統上執行32位的應用程序時,您還可以得到這個問題。執行:

a. file (executable name) 
b. uname -a 

並檢查兩者是「i386」還是「amd64」。

如果他們是不一樣的,看看this article

14

我有同樣的問題,就顯得我的分區被掛載爲NOEXEC 貓的/ etc/mtab中

當我配置的選項在/ etc/fstab中我寫了exec,但是用戶默認情況下顯示「user」選項設置爲「noexec」。當我將這兩個命令的順序改爲用戶時,exec一切都恢復正常了!

希望它有幫助。

2

我在Ubuntu上使用CodeBlocks並且有過這個確切的問題很多次。 KermiDT說的正是解決方案(如果我有足夠的代表點數,我會投票贊成)
「user」選項默認設置爲「noexec」。
所以在/ etc/fstab中只需要添加exec後的用戶。 即我的看起來像這樣:
/dev/sda6 /media/DATA vfat uid=kenny,gid=kenny,users,user,exec 0 0
雖然,間隔有點偏離......但你明白了。