Linux

在 /usr/local/src 中建構包時獲得正確的文件權限

  • May 23, 2019

據我了解,當您建構位於其中的包foo/usr/local/src時,您不需要是 root。但是,當我提取包並嘗試執行建構腳本時,它會失敗,因為它無權在以下位置創建新文件/usr/local/src/foo

$ pwd
/usr/local/src
$ ls -ld .
drwxrwsr-x 5 root staff 4096 May 16 20:36 .
$ ls -l foo.tar.gz 
-rw-r--r-- 1 root staff 206574 May 16 20:35 foo.tar.gz
$ sudo tar xf foo.tar.gz
$ ls -ld foo
drwxr-sr-x 7 root staff 4096 May 16 20:36 foo/

解決這個問題的正確方法是什麼?我應該將自己添加到組人員中並執行sudo chmod g+w foo嗎?

以 root 身份提取存檔會創建一個 root 擁有的目錄層次結構,您無法在其中創建文件。

我建議您將自己添加到staff組中,以便您可以在沒有sudo.

或者,這是我個人會做的,在別處建構軟體,例如在$HOME. 在建構幾乎任何軟體時都應該可以做到這一點。

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