cmake install / make install 到 /usr/local/bin 後,使用者無法執行二進製文件(權限被拒絕)
sudo cmake install
在我使用or命令在我的 Debian (Buster) 機器上安裝任何項目後sudo make install
,二進製文件被放入其中,/usr/local/bin
但儘管 PATH 變數設置正確,即使在重新啟動後,bash 或 fish 也無法找到以這種方式安裝的二進製文件的命令。到目前為止
cmake
,這發生了。nvim
例如nvim
,我遵循了從原始碼建構的說明:
- 用 git 複製 repo
- make CMAKE_BUILD_TYPE=發布
- 須藤使安裝
現在,如果我執行
nvim
,則找不到該命令,但如果我執行sudo nvim
二進製文件,則會正確啟動。我比較了在沒有 sudo 權限的情況下完全可執行的二進製文件的文件權限,
/usr/bin
它們與里面的二進製文件的權限完全相同/usr/local/bin
。
-rwxr-xr-x 1 root root
.我做錯了什麼,為什麼
/usr/bin
沒有sudo的執行檔中的二進製文件和從原始碼安裝的文件/usr/local/bin
不是?這是我的 PATH 變數:
/usr/local/bin:/usr/bin:/bin:/usr/games
附加資訊:如果我執行:
/usr/local/bin/nvim
這是輸出:fish: The file “/usr/local/bin/nvim” is not executable by this user
如果我執行
type -a nvim
輸出是:type: Could not find 'nvim'
如果我執行,
sudo ./pathlld /usr/local/bin/nvim
我會得到以下輸出:drwxr-xr-x 19 root root 4096 Dec 22 12:17 / /dev/nvme0n1p2 on / type ext4 (rw,relatime) drwxr-xr-x 14 root root 4096 May 5 13:19 /usr drwxr-xr-x 7 root root 4096 Mar 24 15:51 /usr/local drwx------ 2 root root 4096 May 5 14:21 /usr/local/bin -rwxr-xr-x 1 root root 10319072 May 5 14:21 /usr/local/bin/nvim
我正在執行西門子公司的定制作業系統,稱為“西門子工業作業系統”;它基本上是一個帶有實時更新檔的 Debian Buster。
問題是這樣的:
drwx------ 2 root root 4096 May 5 14:21 /usr/local/bin
group 和其他人對 . 沒有執行和讀取權限
/usr/local/bin
。以root身份執行:chmod 755 /usr/local/bin
恢復此目錄的標準權限。