Kyl*_*e G 14 filesystems users permissions files
我用 ext4 分区格式化了一个外部硬盘驱动器,然后安装了它。为了可以使用新分区,我做了:sudo chown me:me /mount/directory将文件所有者和组从 root 更改为我,这很好用。
这种变化是持久的,所以我想知道这些信息存储在哪里。如果我将硬盘驱动器分离然后将其挂载到不同的目录,我仍然被设置为文件所有者和组,因此无法将信息存储在挂载目录的 inode 中。
那么整个分区是否有自己的 inode 来存储此类信息,如果有,有没有办法查看它?或者是否有其他地方可以存储信息?
cjm*_*cjm 20
就存储在其上的文件系统而言,外部驱动器和内部驱动器之间没有区别。文件系统根目录的所有者和组存储在其根目录中,与根文件系统的所有者和组的存储方式相同。
一个推论是,因为 UID 和 GID 仅以数字形式存储,如果您在具有不同用户的系统上安装外部驱动器/etc/passwd,您将看到所有者和组已更改为 UID 和 GID 映射到的任何内容其他系统。(例如,如果您的系统用户me是 UID 1000,并且您将驱动器安装在 UID 1000 是 的系统上rms,您将看到由rms.拥有的目录。)
另一方面,如果您使用不存储 UID/GID 信息的文件系统(如 FAT),则文件系统上每个文件的 UID/GID 取自您提供给mount命令的参数(直接或通过/etc/fstab)。
第二个推论是,/mount/directory根文件系统上的所有者或权限无关紧要。一旦文件系统安装在那里,该文件系统的权限就是重要的。这就是为什么我喜欢chmod a-rwx /mount/directory在安装文件系统之前。/mount/directory当文件系统未安装在那里时,它可以防止我意外写入。