2013-03-02 94 views
1

我在Linux機器上以root身份登錄。現在試圖執行C++的二進制(測試),但它會產生一個錯誤「權限被拒絕」。雖然我已經使用chmod + x測試向二進制(測試)授予權限。在Linux中拒絕的權限

由於

+0

檢查是否是根。 – 2013-03-02 05:29:25

+0

selinux在盒子上? acl規則? – 2013-03-02 05:31:15

+0

'file test'的輸出是什麼? – Tuxdude 2013-03-02 05:32:07

回答

0

如果二進制test駐留在目錄/ DIR1/DIR2,執行以下任一本(使用絕對路徑):

/dir1/dir2/test 

或導航到該目錄包含該程序並使用./前綴(又名相對路徑)

cd /dir1/dir2 
./test 
0

嘗試該命令後ls -l /path/to/your/filechmod +x /path/to/your/file

之後,檢查是否存在可執行位x,即查看要打印的第一個字符串,它應該類似於-rwxrwxr-x

  • 如果沒有這三個x做什麼,你有搭配chmod問題。可能你不是根。

  • 如果您有x但無法執行該程序,問題是 與您的程序調用。您應該嘗試將cd放入程序所在的文件夾 中,然後執行它,如 ./program_name

0

有一個名爲「測試」,可能是在你的路徑之前,你的代碼的命令,這就是爲什麼你會輸入「./test」,而不只是‘測試’,這將在發現/ usr/bin/test,可能。 (在您的系統上找到「哪個測試」)

我不知道爲什麼/ usr/bin/test會失敗並顯示錯誤,除非您的測試軟件需要參數並且您正在(在我的系統上)/usr/bin /測試它無法執行的命令。

如果它不叫測試,它不是路徑問題,你可以發佈一些代碼和構建細節?

+1

舊的但仍然有用的建議是永遠不要調用Unix程序「測試」。 – 2013-03-02 05:38:42

3

如果文件測試位於單獨的掛載點上,並且該掛載點使用noexec標誌掛載,那麼您將無法在其上執行任何二進制文件。

從安裝手冊頁:

noexec Do not allow direct execution of any binaries on the mounted filesystem. 

你可以看到國旗的安裝點安裝使用下面的命令:

mount -l 
+0

我也懷疑相同...默認情況下,gcc將創建帶有+ x權限的可執行文件。 – anishsane 2013-03-02 11:09:32