我有一台旧笔记本电脑。当它出现问题时,我移除了它的硬盘并开始将其用作外部硬盘。它为 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
查看它时,那么您无法轻松地将自己添加到同一个组,因为会产生此错误:ll
ls -alF
usermod -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
参考:
- https://superuser.com/questions/454795/how-can-i-do-a-recursive-chmod-only-on-directories/454807#454807
- [我的 repo/文件:搜索此文件以在此处
chmod
找到我的大量个人chmod
示例]eRCaGuy_dotfiles/git 和 Linux cmds、帮助、提示和技巧 - Gabriel.txt
有关的
答案3
驱动器将位于/media/username
文件夹中。使用 cd 命令转到该目录。然后在终端上
sudo chmod 777 nameofdrive
777 为所有用户分配读、写和执行权限。