AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 12009
Accepted
Javier Gonzalez
Javier Gonzalez
Asked: 2010-11-08 16:26:15 +0800 CST2010-11-08 16:26:15 +0800 CST 2010-11-08 16:26:15 +0800 CST

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

  • 772

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

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

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

filesystem permissions ext4 users external-hdd
  • 8 8 个回答
  • 34249 Views

8 个回答

  • Voted
  1. JanC
    2010-11-08T16:54:09+08:002010-11-08T16:54:09+08:00

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

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

    我认为你能做的最好的就是让它们都 UID = 1000,所以在 Fedora 系统中更改 UID,然后确保外部磁盘上的所有文件和 Fedora 安装中用户的 $HOME 中的所有文件都归 UID 1000 所有。之后你应该没有权限问题了。

    • 10
  2. Best Answer
    user2367
    2010-11-08T16:38:08+08:002010-11-08T16:38:08+08:00

    虽然可能是我的蹩脚,但我将不得不用另一个问题来回答这个问题。如果我们谈论的只是一个操作系统,那么它要么是

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

    ( Ubuntu )

    要不就

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

    fedora - 不sudo,只需从 root 运行命令。

    面条刮板部分,以及我没有任何好的答案的部分,是如何制作它,这样当你在发行版之间来回切换时,你不必手动重新输入。我几乎很想将这条线添加到 my~/.bashrc中,但可能有更好的方法我不知道或还没有想到。

    • 5
  3. maco
    2010-11-08T16:38:15+08:002010-11-08T16:38:15+08:00

    在 /etc/fstab 中,您可以将 uid=1000 (在 Ubuntu 中 - 在 Fedora 中为 500 )设置为您的用户拥有的驱动器(假设您是第一个用户,yada yada yada ...如果不是,您的用户的uid from id) 和 umask=000 如果您希望所有用户都可以访问(或者 077 仅用于 uid= 指定的用户 - 这是一个掩码,因此您将 chmod 设置为相反的内容)

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

    • 3
  4. gavenkoa
    2016-04-02T09:19:37+08:002016-04-02T09:19:37+08:00

    不幸的是,Linux 内核在 ext2/ext3/ext4 FS 上强制执行 POSIX 权限。

    您可以解决共享组的 POSIX 权限。我问了相应的问题:https ://unix.stackexchange.com/questions/273144/predefined-group-ids-across-linux-distros/但毕竟我做了自己的研究。

    我发现 Debian、Ubuntu、RedHat、Fedora、CentOS、Suse、FreeBSD、OpenBSD、NetBSD、MacOSX、Solaris 上的 sys 组共享 ID 为 3。

    考虑到这样的发现,一种解决方案可能如下所示:

    $ sudo chgrp -R sys /mnt/data/dir
    $ sudo chgmod -R g+s /mnt/data/dir
    $ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
    $ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir
    

    和这种风格(无论何时在 Linux/FreeBSD/MacOSX/Solaris 上):

    $ sudo adduser user sys
    

    也可以看看:

    • https://unix.stackexchange.com/questions/126213/external-hard-drive-permissions-ext4/
    • 如何挂载 ext4 分区并拥有写权限?
    • https://serverfault.com/questions/306344/sharing-an-ext3-ext4-partition-on-external-drive/
    • 3
  5. jadelord
    2018-05-21T00:17:09+08:002018-05-21T00:17:09+08:00

    这是@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
    
    • 3
  6. d3rdon
    2014-03-11T06:38:34+08:002014-03-11T06:38:34+08:00

    您可以尝试使用 exfat 或 ntfs。对我来说,它是这样工作的。但我现在不知道它是否适用于每个文件权限。我想不是。

    • 2
  7. horizonbrave
    2018-09-14T18:36:39+08:002018-09-14T18:36:39+08:00

    我找到了其他解决方案:

    https://unix.stackexchange.com/questions/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

    https://unix.stackexchange.com/a/273705

    有了这个:

    sudo chgrp -R sys /mnt/data/dir
    sudo chmod -R g+s /mnt/data/dir
    sudo setfacl -R -m g:sys:rwx /mnt/data/dir
    sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir
    

    和这个味道:

    sudo adduser user sys  
    

    您的用户可以在/dir.

    @jadelord @ givenkoa 您认为现在可以对您为 Ubuntu(或 Fedora)用户提出的解决方案进行改进吗?谢谢

    • 2
  8. living being
    2022-08-23T13:24:19+08:002022-08-23T13:24:19+08:00

    运行 Linux 上默认安装的“磁盘”应用程序,然后单击齿轮并选择“获取所有权”。选中“递归模式”框并点击确定。

    在此处输入图像描述

    • 0

相关问题

  • 为什么 Ubuntu 不再将文件大小单位测量为字节、兆字节、千兆字节等?

  • Ubuntu 在什么许可证下?可以合法修改和分发吗?

  • 如何避免启动时出现“S to Skip”消息?

  • 文件权限如何工作?文件权限用户和组

  • 如何防止自己在多用户设置中自动注销?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve