Permissions

cmake install / make install 到 /usr/local/bin 後,使用者無法執行二進製文件(權限被拒絕)

  • May 15, 2022

sudo cmake install在我使用or命令在我的 Debian (Buster) 機器上安裝任何項目後sudo make install,二進製文件被放入其中,/usr/local/bin但儘管 PATH 變數設置正確,即使在重新啟動後,bash 或 fish 也無法找到以這種方式安裝的二進製文件的命令。

到目前為止cmake,這發生了。nvim例如nvim,我遵循了從原始碼建構的說明:

  1. 用 git 複製 repo
  2. make CMAKE_BUILD_TYPE=發布
  3. 須藤使安裝

現在,如果我執行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

恢復此目錄的標準權限。

引用自:https://unix.stackexchange.com/questions/701526