誰應該擁有群組共享的文件以及它們應該存放在哪裡

誰應該擁有群組共享的文件以及它們應該存放在哪裡

我正在配置一個 Linux 工作站,供少數使用者 (20-30) 使用。這些使用者將屬於一小組 (5-10),每個使用者至少屬於一個群組,並且可能屬於多個群組。工作站上有一些文件只能由特定群組的成員寫入。每個檔案只能由一個群組的成員寫入,因此標準 Linux 權限應該可以正常運作。我有兩個問題。

誰應該擁有已經存在的文件?我正在考慮root創建一組與群組相對應的虛擬使用者。我缺少更好的選擇嗎?這似乎不太可能是一個獨特的情況,所以我希望有一個標準約定。

第二個問題是我該把文件放在哪裡。如果我創建了虛擬用戶,我可以在/home/.如果 root 擁有這些文件,我應該選擇/srv/groups/「/share/」還是「/share/」?還有一個約定嗎?

答案1

誰應該擁有已經存在的文件?我正在考慮要么 root 要么創建一組與群組相對應的虛擬用戶。

讓它們擁有 root 但屬於一個公共群組,假設檔案被封鎖 0002(即群組可寫),如果您建立使用者來匹配群組和群組,則在防止它們意外重新擁有方面有一點優勢。該用戶身分登入。我指的是意外事故這裡是因為群組中的惡意使用者在任何情況下都只能刪除這些檔案。但如果他們擁有root(或任何其他用戶)那不是該組),那麼雖然群組中的某人仍然可以寫入它們(從而刪除它們),但他們將無法重新擁有或修改權限,以便群組中的其他成員隨後無法存取該檔案。

如果使用者要建立文件,則使用群組但沒有固定所有者(即文件可以由任何人擁有,但應位於具有群組權限的正確群組中)具有優勢(請參閱下文)。

僅僅為了匹配群組而創建新用戶可能會產生比實際解決的問題更多的潛在問題。如果使用群組權限有效,請堅持使用。您也可以為超級用戶建立一個小命令:

#!/bin/sh
chown -R root:groupx $1
chmod -R g+w $1

並使用它foo /some/directory。這將確保樹中的所有內容都是擁有的rootgroupx並且群組是可寫入的。

root如果 root 然後添加設定值位到文件,但我相信只有所有者才能做到這一點。如果您真的很擔心,請建立一個虛擬用戶,但不要與該群組相符。一種沒有特權但沒有人可以使用的東西。

用戶建立新文件還存在一個問題,預設情況下這些文件將歸他們所有。他們將能夠將其更改為正確的群組,這將使其他人可以訪問該文件,但他們無法更改所有者。由於這個原因,並且因為人們可能會忘記,您可能希望foo /some/directory定期或在適當的時候運行(例如,當沒有人登入時,因為更改所有權可能會影響開啟檔案的軟體)。

考慮到最後一段,你可以說主人根本不重要,只有群體才是重要的。在這種情況下,foo命令應該使用:

chgrp -R groupx $1

代替chown

我應該把文件放在哪裡

/home/groupx即使groupx是一個群組而不是一個用戶,創建一個也絕對沒問題。唯一的潛在問題是,如果您隨後去創建一個具有相同名稱的用戶 - 但您無論如何都不希望這樣做。將文件放在那裡並foo /home/groupx.

如果您不希望使用者能夠建立文件,請將目錄設為 755。

答案2

通常,在這種情況下,文件將歸最後保存它們的人所有(或創建它們的人,如果使用修改現有文件而不是創建新版本的程式編輯它們)。如果您要建立一組初始文件,我會將它們保留為您的帳戶所擁有,除非您為不屬於您的群組播種數據,在這種情況下,root 與任何群組一樣好。但這沒什麼大不了的。

/usr對於既不屬於系統 ( , /var, /bin, /sbin, /lib, /etc) 也不屬於使用者主目錄 ( /home)的數據,沒有廣泛採用的約定。您可以在 下方建立其他目錄/home,也可以將它們放在其他地方。/srv原則上是伺服器使用的數據,但作為系統管理員,您可以自由地將任何您想要的數據放在那裡。/net/MACHINENAME是在機器相互導出檔案系統的網路上「儲存在 MACHINENAME 上的各種資料」的流行選擇。

相關內容