誰應該擁有群組共享的文件以及他們應該去哪裡
我正在配置一個供少數使用者(20-30 人)使用的 Linux 工作站。這些使用者將屬於一小組 (5-10) 組,每個使用者至少屬於一個組,並且可能屬於多個組。在工作站上,有些文件只能由特定組的成員寫入。每個文件只能由一個組的成員寫入,因此標準的 Linux 權限應該可以正常工作。我有兩個問題。
誰應該擁有已經存在的文件?我正在考慮
root
或創建一組與組相對應的虛擬使用者。我錯過了更好的選擇嗎?這似乎不太可能是一個獨特的情況,所以我希望有一個標準的約定。第二個問題是我應該把文件放在哪裡。如果我創建了虛擬使用者,我可以在
/home/
. 如果 root 擁有這些文件,我應該使用/srv/groups/
還是 `/share/? 還有約定嗎?
誰應該擁有已經存在的文件?我在考慮 root 或創建一組對應於組的虛擬使用者。
讓他們擁有 root 但屬於一個公共組,假設文件被屏蔽 0002(即,組可寫)在防止它們意外被重新擁有方面有一點優勢,如果您創建使用者以匹配組和組中的人可以以該使用者身份登錄。我在這裡指的是意外,因為當然組中的惡意使用者在任何情況下都只能刪除文件。但是,如果他們是 root 使用者(或任何其他不是該組的使用者),那麼雖然該組中的某個人仍然可以寫信給他們(並因此刪除他們),但他們將無法重新擁有或修改權限,這樣該組的其他成員隨後將無法訪問該文件。
如果使用者將創建文件,則使用組但沒有固定所有者(即,文件可以由任何人擁有,但應該在具有組權限的正確組中)具有優勢(見下文)。
創建新使用者只是為了匹配組可能會產生比實際解決更多的潛在問題。如果使用組權限有效,請堅持使用。您還可以為超級使用者創建一個小命令:
#!/bin/sh chown -R root:groupx $1 chmod -R g+w $1
並使用它
foo /some/directory
。這將確保樹中的所有內容都是擁有的root
,具有 groupgroupx
和 group 可寫性。
root
如果 root 然後將setuid位添加到文件中,則作為所有者使用存在潛在問題,但我相信只有所有者才能做到這一點。如果您真的很擔心,請創建一個虛擬使用者——但不要創建一個與該組匹配的使用者。沒有特權但沒有人可以使用的一種。使用者創建新文件還有一個問題,預設情況下,這些文件歸他們所有。他們將能夠將其更改為正確的組,這將使其他人可以訪問該文件,但他們將無法更改所有者。出於這個原因,並且因為人們可能會忘記,您可能希望
foo /some/directory
定期執行或在適當的時候執行(例如,當沒有人登錄時,因為更改所有權可能會影響打開文件的軟體)。考慮到最後一段,您可以說所有者根本不重要,只有組很重要。在這種情況下,該
foo
命令應使用:chgrp -R groupx $1
而不是
chown
.我應該把文件放在哪裡
/home/groupx
即使groupx
是組而不是使用者,創建 a也絕對沒問題。唯一的潛在問題是,如果您隨後創建一個具有相同名稱的使用者 - 但無論如何您都不希望這樣做。將文件放在那裡,然後foo /home/groupx
.如果您不希望使用者能夠創建文件,請將目錄設置為 755。他們仍然可以修改其組擁有的文件。