我在計算機1和計算機2上運行Ubuntu。我在計算機1上編譯了一個C++程序,並且我可以使用./program_name
從終端執行它。它運行良好。Ubuntu說「bash:./程序權限被拒絕」
然而,當我嘗試這樣做計算機2上,它說:bash: ./program_name: permission denied
什麼是錯的,我能做些什麼呢?
我在計算機1和計算機2上運行Ubuntu。我在計算機1上編譯了一個C++程序,並且我可以使用./program_name
從終端執行它。它運行良好。Ubuntu說「bash:./程序權限被拒絕」
然而,當我嘗試這樣做計算機2上,它說:bash: ./program_name: permission denied
什麼是錯的,我能做些什麼呢?
chmod u+x program_name
。然後執行它。
如果這不起作用,請將程序從USB設備複製到系統上的本地卷。然後在本地複製chmod u+x program_name
並執行該操作。
Unix和類Unix系統通常不會執行程序,除非它被標記爲執行權限。將文件從一個系統複製到另一個系統(或安裝了外部卷)的方式可能已關閉執行權限(作爲安全功能)。命令chmod u+x name
爲擁有該文件的用戶添加了執行權限。
該命令僅更改與文件關聯的權限;它不會更改與整個卷關聯的安全控制。如果捲上的安全控制妨礙執行,則可以使用選項重新掛載卷以允許執行。但是,將該文件複製到本地卷可能是一種更快,更簡單的解決方案。
我曾經認爲這隻會發生在非Unix/Linux本機分區(如FAT32)上,並且不會發生在'/ tmp'上。事實證明,我的tmpfs'/ tmp'遭受同樣的問題,我必須將可執行文件複製到一個真正的本地卷,即我的home文件夾〜在一個ext4分區。 – RayLuo
我今天遇到這個問題,所以我STFW,第一個搜索結果是紫色的,這意味着我以前讀過這個。 「這是一個很有前途的標誌」,我對自己說,然後點擊搜索結果。它把我帶到這個頁面,這個答案在我的情況下不起作用,然後最後是上面的註釋。然後我注意到這個評論是2個月前我寫的。哇,什麼生活。 – RayLuo
抱歉在這個Q/A上捎帶......也請認爲** noexec **在** fstab **中,它沒有任何執行權限的情況下安裝驅動器......「我聽說」有些人「丟失了相當多的時間尋找... –
聽起來像是你沒有執行標誌上的文件權限設置,嘗試:
chmod u+x program_name
你有權限來執行'progam_name'? – fedorqui
你是如何從計算機1到計算機2獲得該程序的?你是否複製了可執行文件或重新編譯了源代碼?命令「ls -l program_name」的輸出是什麼? –
我會如何發現這一點?如果有幫助,我知道root密碼。我通過USB棒運輸它。 – Kian