如何更改外部硬盘驱动器的权限?

如何更改外部硬盘驱动器的权限?

我有一台旧笔记本电脑。当它出现问题时,我移除了它的硬盘并开始将其用作外部硬盘。它为 Windows C 驱动器分区分配了 80 GB 的内存。但现在我不再需要该分区了。但问题是我无法访问该驱动器以将文件粘贴到其中。如何使用终端为此驱动器授予读写权限?

答案1

如果您想获得驱动器的所有权,可以使用 chown 命令:

sudo chown -R $USER:$USER /media/$USER/nameofdrive

这会将驱动器的所有权授予当前用户,而不允许未经授权的用户拥有权限,并且-R使该命令递归,以便所有权也适用于驱动器上所有现有的单个文件,而不仅仅是驱动器本身。

您还可以使用它-R来进行chmod递归。

要将所有权权限分配给不同的用户或组,只需将其替换$USER:$USER为您希望分配所有权的任何username:groupname内容即可。username:username

答案2

1. 对于外部驱动器上的文件来说,这是一种可行的技术,但正确的针对刚从外部驱动器复制到计算机上的文件的技术

这有效:递归( )将(冒号之前的部分)和(冒号之后的部分)-R更改为您的用户名:username:groupname:

注意:请耐心等待:对于大量数据,这可能需要几分钟。我刚刚在目录上执行了以下命令高速内置 SSD包含966 GB 数据(如图所示du -sh)和1060 万个文件(如图所示find . | wc -l)并且它花费了4 分钟

# format: 
# sudo chown -R username_of_new_owner:groupname_of_new_owner path/to/dir
sudo chown -R username:username /media/username/nameofdrive

但是,这样做的问题是,它使外部磁盘难以在多个用户名和/或多台计算机之间共享,因为每个系统上需要访问这些文件的每个人都必须拥有相同的username,或者必须是同一个的一部分groupname。只有当是同一个人时,使用相同的用户名才有效,所以这并不总是有意义的。如果始终是同一个人使用该驱动器,并且他们都将自己添加到同一个组中,则使用相同的组名是可以的:

usermod -a -G groupname

但是,如果组名在一个系统上不存在,而只显示为一个数字,例如,当您使用( )5000查看它时,那么您无法轻松地将自己添加到同一个组,因为会产生此错误:llls -alFusermod -a -G 5000

$ usermod -a -G 5000
usermod: group '5000' does not exist

2.有时更适合外部驱动器上的文件

因此,这引出了我们的解决方案:只需授予这些文件的完全权限即可每个人

sudo chmod -R 777 /media/username/nameofdrive

但是,这也会将所有文件标记为可执行文件,这实际上没有意义。您不想随意将每个文件标记为可执行文件,因为这可能会带来安全风险,而且每次双击文本文件以打开和编辑它时,它都会询问您是否要运行/执行它,这也很烦人。

3. 对于外部驱动器上的文件,最好还是使用 #1(或者最好,如果你确实需要每个人都有写入权限)

因此,我建议:授予完全权限每个人-a,或 'a'll),但如果它是一个目录,或者已经为“用户”、“组”或“其他”中的一个或多个设置了可执行位(即:使用+X,而不是+x),如下所示:

sudo chmod -R a+rwX /media/username/nameofdrive

man chmod关于大写X与小写x选项的说法:

...仅当文件是目录或某些用户(X)已具有执行权限时才执行/搜索...

4. 更好的方法是 #2(或者最好,如果你不需要每个人都有写权限,即:如果足以容纳外部驱动器上的文件

但是,更好的是,如果你可以摆脱它:如果你真的不需要保证每个人都有权限,只要确保你至少有驱动器上每个人的权限,如下所示:

sudo chmod -R a+rX /media/username/nameofdrive

-R a+rwX然后,仅在将文件从外部驱动器复制到本地计算机后应用权限:

cp -r /media/username/nameofdrive/some_dir ~/some_local_path
# Now add `w`rite for everyone
sudo chmod -R a+rwX ~/some_local_path
# OR (even better!): just make yourself the owner now that it's on your local
# drive:
sudo chown -R username:username ~/some_local_path

参考:

  1. https://superuser.com/questions/454795/how-can-i-do-a-recursive-chmod-only-on-directories/454807#454807
  2. [我的 repo/文件:搜索此文件以在此处chmod找到我的大量个人chmod示例]eRCaGuy_dotfiles/git 和 Linux cmds、帮助、提示和技巧 - Gabriel.txt

有关的

  1. [我的答案]https://superuser.com/questions/1271882/convert-ntfs-partition-to-ext4-how-to-copy-the-data/1464264#1464264

答案3

驱动器将位于/media/username文件夹中。使用 cd 命令转到该目录。然后在终端上

sudo chmod 777 nameofdrive

777 为所有用户分配读、写和执行权限。

相关内容