我查看了克隆的 git 專案,發現檔案具有-rw-r--r--權限。這意味著系統上的任何用戶都可以讀取專案檔案。當然,這取決于檔案夾權限,但在某些系統上nobody,所有其他用戶都可以讀取專案。
如果有解決此問題的任何建議?為什么會發生?
例如這有效:
sudo -u nobody cat /projects/project1/file1
uj5u.com熱心網友回復:
它沒有損壞,也沒有什么需要修復的:這就是權限在 Unix/Linux 系統上應該如何作業。
包括 Git 在內的程式通常使用模式0666( rw-rw-rw-) 創建新檔案,除非它們是可執行的;如果它們是0777可執行的,它們會使用模式( )創建新檔案rwxrwxrwx。對于目錄,行程必須可執行才能chdir進入它們或以其他方式在其中操作,程式呼叫mkdir具有權限的系統呼叫0777( rwxrwxrwx)。
除非當前行程將其設定umask為0. umask 是每個行程的并且以與當前作業目錄相同的方式繼承,是作業系統在實際創建新檔案或目錄之前應該清除的位掩碼。在典型設定中,典型用戶的默認 umask 是022: 這會取消----w--w-權限,因此新創建的目錄最終具有模式0755( rwxr-xr-x),而新創建的非可執行檔案具有模式0644( rw-r--r--)。
將 umask 設定為 take 077away ---rwxrwx,以便新創建的目錄具有模式0700orrwx------并且新創建的非可執行檔案具有模式0600or rw-------。新創建的可執行檔案具有模式0700或rwx------自呼叫創建它們的行程0777作為模式提供,并用is0777屏蔽。~0770700
Git 在 Unix 和類 Unix 系統上使用這些相同的約定。這不是 Git 的事情,而是作業系統的事情。請注意,這種簡單、易于理解的方案不適用于訪問控制串列 (ACL) 等復雜事物。有些人用這個來爭論復雜的事情不應該存在(并且這個論點有一些東西)。首先可能應該洗掉對檔案的“其他”訪問的想法,因為“組”(如果可以根據需要任意創建組)將涵蓋此類用途。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/431881.html
