我有一个外部硬盘驱动器,它有 ntfs 文件系统。
从输出sudo fdisk -l
:
Disk /dev/sdb: 931.5 GiB, 1000170586112 bytes, 1953458176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00023f15
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1953458175 1953456128 931.5G 7 HPFS/NTFS/exFAT
从输出mount
:
/dev/sdb1 on /media/t/My Passport type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
如果我在文件系统中的目录上设置一些权限位,例如只能由 root 执行和读写,那么当我将外部硬盘驱动器插入 Windows 系统时,这些权限位会受到尊重吗?
我想找到一种方法来限制从任何操作系统(特别是 Linux 和 Windows)访问我的外部硬盘驱动器上的目录。另请参阅https://askubuntu.com/a/104544/1471
我刚刚发现它chmod
不适用于外部硬盘驱动器,我想知道为什么以及如何解决它:
$ ls -ld temp/
drwxrwxrwx 1 t t 144 May 27 18:31 temp/
$ sudo chmod o-rwx temp
$ ls -ld temp/
drwxrwxrwx 1 t t 144 May 27 18:31 temp/
谢谢。
答案1
如果我在文件系统中的目录上设置一些权限位,例如只能由 root 执行和读写,那么当我将外部硬盘驱动器插入 Windows 系统时,这些权限位会受到尊重吗?
不可以,UNIX 文件权限在 Windows 上不起作用。
我想找到一种方法来限制从任何操作系统访问我的外部硬盘驱动器上的目录。
一般来说,每个操作系统都有不同的设置权限的方式,所以这是不可能的。您需要根据文件系统当前安装的操作系统来设置文件的适当权限。
引用自这个答案:
NTFS 具有 Windows ACE。 Unix 在每个文件上使用“模式位”。
在 NTFS 上,每个文件都可以有一个所有者以及零个或多个 Windows 访问控制条目 (ACE)。 ACE 由主体(用户和组是主体)、一组操作(读取、写入、执行等)以及是否允许或拒绝这些操作组成。文件可以有许多 ACE。 Windows 中除文件之外的其他对象也可以具有 ACE,例如注册表项、打印机对象和其他对象。发生文件操作时会考虑所有 ACE。拒绝优先于允许。 Windows ACE 支持继承,您可以在其中为目录设置 ACE 并将其自动传播到较低级别的目录。
Unix 中的文件有一个所属用户 (owner) 和一个所属组 (owner-group)。有三个固定的“主体”,即所有者、所有者组的成员以及其他所有人(也称为世界)。对于每个主体,都有三个“位”,涵盖读、写和执行能力。 (这些对于目录和文件来说具有不同的含义,请参阅此)。这些位决定谁可以执行哪些操作。这称为文件模式并内置于文件中(没有单独的 ACE)。