我的电脑上有一个 NTFS 分区。它在 Linux 和 Windows 双启动系统之间共享数据。
我的/etc/fstab
观点是:
#Mount Dati at boot=
UUID=01CD9E64E80BD460 /mnt/Dati ntfs nls=iso8859-1,umask=0022,uid=1000,gid=1000,dmask=027,fmask=137 0 0
出了点问题,因为我无法使任何文件可执行。我应该更改什么?
此外,有人可以帮助我理解 umask、dmask 和 fmask 或者发布一些指南的链接吗?
总结:我应该给予Linux和Windows之间共享并在samba网络上共享的NTFS分区什么权限?
答案1
我知道这个问题是前一段时间问的,但无论如何我都会尝试为未来的用户回答:
关于文件系统中的掩码:
Linux 文件系统中掩码的使用是为了控制- 不同用户/组对特定文件和文件夹的读取、写入和执行权限。我强调“控制”一词,因为掩码与授予权限不同。恰恰相反;它们用于控制或限制权限。因此,如果您想将文件的权限设置为 777,则必须使用 000 作为该文件的掩码。对于权限 655,掩码将为 122(即:对于权限 xyz,掩码将为 (777-xyz))。什么是 umask、dmask 和 fmask?
- umask = 用户掩码(文件夹和目录!)
- dmask = 目录仅掩码
- fmask = 仅文件掩码
如何设置 NTFS 分区文件的可执行权限?
运行此命令以获取每个 NTFS 驱动器的 UUID(通用唯一标识符):$ sudo blkid
你将获得如下输出:
/dev/sda6: LABEL="Software" UUID="FEDC5DB5DC5D6943" TYPE="ntfs"
/dev/sda7: LABEL="Works" UUID="585AD06A35149024" TYPE="ntfs"
现在编辑 fstab 文件:
$ sudo vim /etc/fstab
在 fstab 文件中添加/编辑每个驱动器指定行,并添加以下选项(请记住谨慎使用其他选项,因为添加任何其他选项可能会导致问题):
defaults,auto,umask=002
因此,在编辑/添加 nfts 驱动器后,您的 fstab 文件部分将如下所示:
#<file system> <mount point> <type> <options> <dump> <pass>
UUID=FEDC5DB5DC5D6943 /media/software ntfs defaults,auto,umask=002 0 0
UUID=585AD06A35149024 /media/works ntfs defaults,auto,umask=002 0 0
上述 umask 将设置权限等于 775,即对管理员用户(即您)和管理员用户组具有读写执行权限,对其他用户具有读写权限。对于 samba 共享,您可能需要gid=YourGroupID,uid=YourUserID
在选项集中使用。您可以使用以下命令找到 YourGroupID 和 YourUserID 值:
$ id YourUserName
如果已经安装,现在卸载驱动器:
$ sudo umount -a
然后通过以下命令挂载:
$ sudo mount -a
安装后,您可以按照自己想要的任何方式使用驱动器。