如何永久更改“/media/$USER”下已安装设备的所有权?

如何永久更改“/media/$USER”下已安装设备的所有权?

我使用加密的(带有 LUKS 和 ext3 的 cryptsetup)SD 卡作为磁盘空间扩展。当在 Nautilus 中输入密钥时,设备将被解密 ( /dev/dm-3) 并安装在 中/media/$USER/。不幸的是所有者是root。如何永久更改已安装设备的所有权/media/$USER

我已经尝试过以下 udev 规则:

ENV{ID_FS_UUID}=="a1d9e412-fd9d-4e44-a98f-d0d6f2de83c2", SUBSYSTEM=="block", OWNER="david"

但它没有成功。

是否可以拥有动态所有权,以便将所有者设置为尝试安装设备的用户?

答案1

你在这里混淆了概念。您的udev规则改变了所有权设备节点磁盘的。这完全独立于文件系统条目的所有权和权限包含文件系统。

基本上,有两种文件系统: 那些了解文件所有权概念的文件系统,如常见的 UNIX 文件系统(ext[2-4]XFS、JFS、Btrfs 等);那些不这样做的人,至少喜欢“旧的”Windows/DOS 文件系统(FAT*)。

后者的内核文件系统驱动程序通常具有挂载选项来告诉内核向用户空间呈现哪个所有者和权限,因为 Linux 是一个多用户系统,并且用户需要分开 - 根据他们的文件的需要,即使在外部驱动器上。当您在没有文件所有权概念的情况下挂载文件系统时,Nautilus & Co. 通常使用这些挂载选项来使文件“归您的用户所有”(通常是当前活动会话的所有者)。

对于具有文件所有权概念(如ext3您所使用的)的文件系统,情况有所不同。由于该文件系统上的文件具有明确的所有者,因此内核尊重它们。这些文件系统也不提供覆盖此行为的机制(如提到的安装选项),因为这会破坏安全性。因此,如果您挂载这样的文件系统,即使通过 Nautilus,内核也会尊重实际的文件所有权。

太长了;博士:改变块设备您的用户的所有者并不能解决(甚至推进)问题。没有办法制作内核表现就好像文件的所有者是您一样,但您实际上需要制作您是所有者,即通过使用chmod.此操作将永恒的但是,当您更改文件系统本身时。这将使该方法不适合修复另一台计算机的系统分区等。

如果可以(或打算)永久更改所有权,并且您可以root访问要使用设备的系统,则可以在安装文件系统后进行chown -R <user> /media/<user>操作。root

但请注意,如果您有不同的系统,并且帐户的 UID 在所有系统上都不匹配,则您在下一台计算机上将再次遇到相同的问题。在这种情况下,您可以更改帐户的 UID 以进行匹配(如果您有权限),也可以使用不知道所有权的文件系统(例如 FAT32)来格式化您的设备。

相关内容