Mount

無法在已安裝的 ntfs 分區上 chown、chmod

  • January 4, 2019

我需要掛載一個 ntfs 分區並能夠以 unix 文件系統權限使用它。問題是,當我使用以下 fstab 條目掛載分區時,我無法成功執行 chown 和 chmod。它執行沒有錯誤,但文件訪問權限沒有改變。

PARTUUID=c3e3b171-d451-44e6-9f17-ffbe9e220dc7   /mnt/mounted_drive  ntfs-3g  defaults,umask=0022,uid=1000,gid=1000,errors=remount-ro,permissions 0 2

當我在不設置 umask、uid 和 gid 的情況下掛載分區時,我可以成功使用前面提到的命令。

PARTUUID=c3e3b171-d451-44e6-9f17-ffbe9e220dc7   /mnt/mounted_drive  ntfs-3g  defaults,errors=remount-ro,permissions 0 2

我該怎麼做才能正確掛載分區?

使用 NTFS-3G,設置擁有使用者和組似乎只有在存在包含目標使用者/組映射的 UserMapping 文件時才有可能。這在文件中並不是很清楚,但我現在正在測試它,這就是正在發生的事情。

如果不需要與現有 Windows 安裝兼容,.NTFS-3G/UserMapping請在已安裝的分區上創建一個空文件並通過以下方式填充:

getRUI4() { od -An -N4 -tu4 /dev/random | tr -d ' '; }
USERMAPPING=/media/NTFS_PARTITION/.NTFS-3G/UserMapping
echo ":users:S-1-5-21-$(getRUI4)-$(getRUI4)-$(getRUI4)-513" | sudo tee -a $USERMAPPING >/dev/null
echo "$(id -un):$(id -gn):S-1-5-21-$(getRUI4)-$(getRUI4)-$(getRUI4)-1001" | sudo tee -a $USERMAPPING >/dev/null

如果您想使用現有的 Windows SID,您可以在未掛載 (!) 分區上使用該程序ntfsusermap,該分區將互動地要求您指定使用者名和組名(不需要是數字,無論消息如何)給定路徑,它首先找到一個尚未映射的 ID。這很快就可以做到。

預設情況下會映射使用者和組root,就像other. 以上幾行將為users組和目前使用者創建一個映射。根據需要重複。

另外,就我而言,我使用選項安裝驅動器

no_def_opts,allow_other,acl,nodev,nosuid,big_writes,hide_dot_files

但是,在您的情況下,您應該不需要它們中的任何一個,儘管我發現這些選項在預設情況下有所改進,否則例如chown/chmod在出現錯誤時會靜默失敗。

引用自:https://unix.stackexchange.com/questions/491098