如何只允許特定使用者訪問已安裝分區的一個 NTFS 文件夾?
我有兩個使用者:userA 和 userB。我也有 NTFS 格式的分區。由於 /etc/fstab 中的這一點,整個分區只能由 userA 訪問:
/dev/sda3 /home/userA/data ntfs-3g defaults,rw,nouser,uid=userA,umask=077,exec 0 0
. 我想允許 userB 可以訪問一個文件夾(例如 /home/userA/data/movies),但不能訪問整個驅動器。我怎樣才能做到這一點?
如果我允許 fstab 中的所有使用者,則兩個使用者都可以訪問整個驅動器,無論它是否安裝在 /home/userA/ 文件夾中。userB 可以簡單地做
ls /home/userA/data
即使他做不到
ls /home/userA
如果我按照現在的設置保留 fstab 並使用符號連結,則符號連結尊重對其連結到的文件夾的權限,並且不允許 userB 使用此符號連結。
我也嘗試使用 remount 選項,但它唯一可以更改的是 ro/rw 選項,它不能更改 ntfs 分區的 uid、guid 或類似選項。我猜下面的政策(來自 man mount)也適用於 ntfs:
-o remount 可能無法更改掛載參數(例如,除 sb 之外的所有 ext2fs 特定參數都可以通過重新掛載進行更改,但您不能更改 fatfs 的 gid 或 umask)。
我假設客戶端機器正在執行 Linux。
Linux 能夠為同一文件系統的全部或部分創建多個視圖。您可以使用它來使使用者只能訪問文件系統的一部分(受進一步的權限檢查)。
/dev/sda3 /home/userA/data ntfs-3g defaults,rw,nouser,uid=userA,umask=077,exec /home/userA/data/subdir /home/userB/subdir bind
該命令
mount --bind /home/userA/data/subdir /home/userB/subdir
設置第二個視圖。如果
/home/userA
使用者 B 無法訪問,則使用者 B 將無法通過該視圖訪問 NTFS 分區。但是,使用者 B 將能夠subdir
通過視圖訪問目錄/home/userB/subdir
。權限仍然適用:subdir
如果權限不包括 userB,則某些文件可能無法訪問。如果您還想調整權限(以允許 userB 訪問所有文件,或僅授予只讀訪問權限等),您可以使用bindfs。例如,請參閱對特定子文件夾中所有文件的只讀訪問權限和允許使用者讀取其他使用者的主目錄。