将内部硬盘分区的所有者从root更改为用户。

我有一些内部和外部的驱动器。其中一些已经分区。大多数在启动时会自动挂载(以前都是如此)。
一个分区由root拥有,因此不会自动挂载。我知道如何以root身份挂载它。
我不知道如何以用户X的身份拥有该分区。我尝试使用Nautilus中的图形界面作为root更改权限。但是权限更改不被接受并立即恢复原样。
该分区是NTFS格式。该驱动器上的其他分区由我作为用户拥有,并且会自动挂载。

如果它们在启动时自动挂载,这意味着您修改了/etc/fstab文件,请编辑您的问题以显示该文件的内容。 - enzotib
6个回答

你试过了吗?
sudo chown user:user

例如,sudo chown cyrex:cyrex(用户:组)。
如果分区名为party,您的用户名为cyrex,并且它位于/media目录下,只需执行以下命令: sudo chown cyrex:cyrex /media/cyrex/party -R(-R选项表示递归操作,将影响所有,因目录/文件和子目录)。
请注意,该分区是NTFS格式此如果自动挂载,您需要确保具有权限的用户是您本人。请按照以下步骤进行操作:
  1. 打开终端 (gnome-terminal)

  2. 输入 id -u。这将给出你的用户ID,你需要将其插入到fstab中。

  3. 打开fstab文件 sudo /etc/fstab 并搜索挂载ntfs分区的那一行。

  4. 假设它是这样的:

    UUID=1234532123 /media/amntfs  ntfs  defaults 0       0
    
添加到它的 umask、uid 和 gid掩码像这样
UUID=1234532123 /media/amntfs  ntfs   defaults,umask=007,uid=1000,gid=1000  0       0

保存文件,然后重新启动或重新挂载该单元。

这里:

  • uid 是您的用户 ID。您可以通过 id -u 命令获取。
  • gid 是您的组 ID。通常与 id -u 相同,但您可以使用 id -g 命令进行检查。
  • umask 与 chown 相似,但方向相反。

有关在 NTFS 文件系统上使用 chmod/chown 的更多信息,请参阅如何在 NTFS(或 FAT32)分区上使用 'chmod'?

NTFS 和 POSIX 的兼容性

正确的想法是 NTFS 不完全符合 POSIX 标准。但同时也是真实的,NTFS 是符合 POSIX 标准的,这意味着它与 Linux 中使用的 POSIX 类似但并非完全相同。在阅读我的回答时,您会发现这两点:

  • 我针对的是更改 NTFS 文件的权限
  • 我针对的是在挂载级别或在 fstab 中挂载时更改权限。
对于安装级别来说,那是相当简单的。就像上面所述的文件权限一样,如果分析一下,它实际上是没有意义的,并且不应该工作。但事情有点更加复杂。因此,作为一个20世纪90年代的Windows技术员和自2001年以来的Linux用户,这里是一个技术人员的摘要。
当您挂载NTFS文件系统(至少在Ubuntu上)时,NTFS-3G会负责正确地进行挂载,并提供映射功能,以确保权限方面的指令被正确地从Linux映射到NTFS文件系统。换句话说,如果我运行chmod或chown,它们将起作用。
这只是答案的一半。另一个答案是NTFS符合POSIX标准,或者你可以说在某种程度上“兼容”,但据我所知,它是针对POSIX版本1,我认为是1990年代的POSIX.1,仅适用于某个子系统。
因此,在NTFS-3G和NTFS与POSIX“兼容性”之间,事实上您可以使用chmod对NTFS文件和文件夹进行操作。
我不能对Windows 8.1、10、11或未来的版本中关于NTFS如何与POSIX兼容性进行任何评论,但我可以谈谈当前版本和我对NTFS、POSIX背景以及它们在谈论Windows时如何以一种非常奇怪的方式相关的经验。 小更新:从5.15内核(2021年10月31日)开始,有一个新的NTFS实现作为此处的阅读材料,展示了我们处理NTFS的改进。

这对我有用,非常感谢。唯一的注意事项是:我不得不重新启动(仅仅卸载和挂载分区是没有用的)。 - Francesco Borzi
提供的链接最后对我有效。 - Raknos13
嗨Luis,你能看一下这个最新的回答吗?https://askubuntu.com/q/1375775/. 基本上,这个回答与我找到的所有内容都不一致,包括这个。我想要将挂载的ntfs文件的所有权改为我的,但他强烈反对,并且似乎对自己的观点非常有信心,我想知道是否真的如此。谢谢。 - xpt
@xpt我已更新我的答案以反映此事。根据您在另一篇帖子中的回答,我还建议您给我发送一封电子邮件至luisalvarado@ubuntu.com,这样我可以以更直接的方式帮助您,因为您的情况确实不太常见。 - Luis Alvarado
哦,谢谢你的更新,路易斯。关于我在另一篇帖子中的问题,我已经解决了,在他继续为他错误的答案辩护之前。我的担心是这是该主题的最新答案,所以搜索引擎会将人们引导到那里,这会让人们更加困惑而不是帮助他们。我试图删除它,但发现这是不允许的。 - xpt

我所有的NTFS分区都是由root拥有的,但作为用户,我可以正常访问它们。这是一种挂载选项的问题,而不是所有权和文件权限(记住,这是一个NTFS分区 - 你无法更改任何权限)。

在我的/etc/fstab中,分区被包含如下:

UUID=AB84274F84211B98   /media/WIN7     ntfs   defaults  0   0
UUID=CDBAF39E13A2AC2D   /media/DATA     ntfs   defaults  0   0
UUID=EFA980B33BA33DF5   /media/MEDIA    ntfs   defaults  0   0

其中defaults是默认的挂载选项,应该已经可以满足你想要做的事情。

要找到UUID,请运行sudo blkid

另请参阅:如何在NTFS(或FAT32)分区上使用'chmod'命令?


那么fstab中的permissions参数是用来做什么的呢?https://askubuntu.com/q/92863/795299 - alchemy

最简单的方法是在终端中使用sudo打开文件管理器,例如sudo nemosudo nautilus或您正在使用的其他文件管理器,然后右键单击分区并添加权限。

1最简单和最快的... - Marcelo Scofano Diniz

如果您将一个分区挂载到/home/user下的文件夹中,它将归属于该用户。以下是我在/etc/fstab中添加的行。
UUID=9e5bb53c-4443-4124-96a8-baeb804da204 /home/fragos/Data ext4 errors=remount-ro 0 1

我在解决这个问题时遇到了困难,但是这个解决方案对我起了作用。
安装物理存储设备管理器: sudo apt-get install pysdm
打开存储设备管理器: sudo pysdm
选择所需的驱动器
点击辅助
取消选中“只读模式”
检查文件系统的所有者用户,并填写您的用户名
点击确定
点击应用
卸载驱动器
挂载驱动器
注意: 如果您无法将文件更改为二进制可执行文件,请转到特殊文件并检查将文件作为二进制文件执行的权限,然后转到第7步。

这是我在Ubuntu上自动设置分区所有权的方法:
  1. 找到并启动Disks应用程序
  2. 选择存储磁盘并选择分区。
  3. 点击选项按钮,选择编辑挂载选项...
  4. 关闭默认选项
  5. uid=1000,gid=1000添加到列出的挂载选项中。
  6. 点击确定。
  7. 卸载和重新挂载分区,完成。

如果您想为可执行文件授予执行权限,只需将exec添加到选项列表中即可。