OpenSolaris + ZFS + ACL 中可能的權限層次結構?
我一直在對用於 NAS 的 OpenSolaris 和 ZFS 進行一些研究。
到目前為止,我已經創建了以下內容:
/坦克/項目
/坦克/儲存
/坦克/開發商
/坦克/沙箱
為 tank 分配的總空間為 3.4Tb (RAIDZ2)。Developers mount 是我們的 Subversion 儲存庫,它應該被鎖定,因此只有系統管理員才能訪問該內容以及 suDevelopers 組中的內容。
沙盒是一個遊戲區,它都是敞開的門,讀/寫/刪除任何東西。
我想知道如何實現以下目標,是否必須使用 ACL 或僅使用標準 Unix 權限。
這個 NAS 主要有三組使用者,這是在使用者的層次結構中。除了 CIFS 之外,沒有任何 AD 或其他任何東西可以共享此 NAS。
- suDevelopers 他們可以訪問 tank 中的所有內容。
- suStaff 這些使用者是該場所的工作人員,他們應該可以訪問除水箱中的開發人員 zfs 之外的所有內容。
- suContractors 這些使用者只能看到 Storage 文件夾,而不能訪問其他使用者。
問題是儲存區域上的某些文件包含我們不希望承包商看到的敏感資訊(序列號、許可證密鑰)。我們可以通過將文件放在那裡的使用者在 Windows 中設置這些權限,並且它們會自動設置到正確的位置嗎?
我不確定如何正確執行上述操作,以及我應該使用 ACL 還是 CHMOD。
好吧,無論您使用傳統的 POSIX 權限還是 ACL,您都將
chmod
在 Solaris 上使用。在這種情況下,我建議您使用 ACL。您必須將 ACL 分別應用於罐儲存池中的每個文件系統。我建議也將每個文件系統的aclmode
和aclinherit
屬性設置passthrough
為。我認為最好在 Solaris 端設置 ACL,而不是通過 Windows 進行設置。
基本上它看起來像:
chmod -R A=\ group:suDevelopers:full_set,\ group:sysadmins:full_set,\ /tank/projects chmod -R A=\ group:suDevelopers:full_set:allow,\ group:suStaff:full_set:allow,\ group:suContractors:full_set:allow /tank/storage chmod -R A=everyone@:full_set:allow /tank/sandbox
等根據需要。您也可以使用
read_set
只讀權限。還有很多其他方法可以使用 ACL 來減少內容,它們是 Solaris 上一個非常強大的系統。您可以閱讀
man chmod
並man zfs
了解詳細資訊。還有這篇文章給出了一些進一步的例子。
還要確保您使用
/usr/bin/chmod
的/usr/gnu/bin/chmod
是我認為是預設設置的而不是。