解决使用外部 EXT4 硬盘安装多个 Linux 时的权限问题

解决使用外部 EXT4 硬盘安装多个 Linux 时的权限问题

我有一个外部硬盘,因为我只使用 Ubuntu 和 Fedora,所以我决定将硬盘格式化为 ext4,一切都很好。

问题是当我安装驱动器时,我需要更改权限,以便我可以读取和写入。

我应该使用什么样的权限?adm 我的用户名?

答案1

最简单的解决方案是确保您的 Ubuntu 和 Fedora 用户帐户具有相同的用户 ID(UID)。

我认为 Fedora 默认从 500 开始用户帐户,而 Debian 和 Ubuntu 从 1000 开始,因此很有可能在一个操作系统中您的用户编号是 500,而在另一个操作系统中您的用户编号是 1000。文件系统使用此 UID 号码来跟踪权限,因此如果您确保他们具有相同的 UID,他们将被视为同一个用户,并且不会发生任何权限问题。

我认为你能做的最好的事情就是让它们的 UID 都为 1000,因此在 Fedora 系统中更改 UID,然后确保外部磁盘上的所有文件以及 Fedora 安装中的用户 $HOME归 UID 1000 所有。此后,您应该不会再遇到权限问题。

答案2

尽管我可能说得不太好,但我还是要用另一个问题来回答这个问题。如果我们讨论的只是一个操作系统,那么它要么是

sudo chown -R (user name) /dev/(device name)

Ubuntu

要不就

chown -R (user name) /dev/(device name)

Fedora 系统— 不sudo,只需从 root 运行命令。

面条刮擦器部分,以及我没有任何好答案的部分,是如何做到这一点,以便您在发行版之间来回切换时不必手动重新输入。我几乎想把这行添加到我的~/.bashrc,但可能还有更好的方法我不知道或还没有想到。

答案3

在 /etc/fstab 中,您可以输入 uid=1000(在 Ubuntu 中 - 在 Fedora 中为 500)以表示驱动器归您的用户所有(假设您是第一个用户,等等等等...如果不是,则为您的用户的 uid id),如果您希望所有用户都有权访问,则输入 umask=000(或者仅对于 uid= 指定的用户,输入 077 - 这是一个掩码,因此您输入的内容与 chmod 的值相反)

有关使用 /etc/fstab 的更多信息: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html

答案4

这是@gavenkoa 使用共享组的方法的细微变化,并且不涉及已安装驱动器的修改。

检查已安装的驱动器中使用的组 ID (GID)。

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

假设您看到类似以下内容的内容:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

这意味着12000驱动器中数据的当前 GID,并且该组的其他用户可以读取和执行数据(但不能写入)。创建一个新组(例如driveusers),并将当前用户添加到新组:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive

相关内容