Ana*_*Das 8 permissions sudo gnome-terminal external-hdd
我有一台旧笔记本电脑。当它收到投诉时,我卸下了它的硬盘驱动器并开始将其用作外部硬盘。它为 Windows C 驱动器分区分配了 80 GB 的内存。但现在我不再需要那个分区了。但问题是我无法访问该驱动器以将文件粘贴到其中。如何使用终端对该驱动器进行读写权限?
mch*_*hid 18
如果要获得驱动器的所有权,可以使用 chown 命令:
sudo chown -R username:username /media/username/nameofdrive
Run Code Online (Sandbox Code Playgroud)
这赋予用户对驱动器的所有权,而不允许未经授权的用户获得许可,-R
并使此命令递归,以便所有权也适用于驱动器上的所有现有单个文件,而不仅仅是驱动器本身。
你也可以用-R
做chmod
递归为好。
这是有效的:递归地 ( -R
) 将username
(冒号之前的部分:
)和groupname
(冒号之后的部分:
)更改为您的用户名:
注意:请耐心等待:对于大量数据,这可能需要很多分钟。我刚刚对包含966 GB 数据(如 所示)和1060 万个文件(如 所示)的高速内部 SSD上的目录执行了以下命令,花费了4 分钟。du -sh
find . | wc -l
# format:
# sudo chown -R username_of_new_owner:groupname_of_new_owner path/to/dir
sudo chown -R username:username /media/username/nameofdrive
Run Code Online (Sandbox Code Playgroud)
但是,这样做的问题是,它使得外部磁盘难以在多个用户名和/或多台计算机上共享,因为每个系统上需要访问这些文件的每个人都必须具有相同的文件username
,或者必须是该文件的一部分。相同的groupname
。只有同一个人才能使用相同的用户名,因此这并不总是有意义。如果使用该驱动器的人始终相同,并且他们都将自己添加到同一组中,则具有相同的组名是可以的:
usermod -a -G groupname
Run Code Online (Sandbox Code Playgroud)
但是,如果组名在一个系统上不存在,并且仅显示为数字,例如,当您使用( )5000
查看它时,那么您将无法轻松地将自己添加到同一组,因为会产生以下错误:ll
ls -alF
usermod -a -G 5000
$ usermod -a -G 5000
usermod: group '5000' does not exist
Run Code Online (Sandbox Code Playgroud)
因此,我们找到了这个解决方案:只需向每个人授予这些文件的完全权限即可:
sudo chmod -R 777 /media/username/nameofdrive
Run Code Online (Sandbox Code Playgroud)
但是,这也将所有文件标记为可执行文件,这实际上没有意义。您不想任意将每个文件标记为可执行文件,因为这可能会带来安全风险,而且每次双击文本文件打开并编辑它时,它都会询问您是否愿意,这也会很烦人运行/执行它。
因此,这导致我提出我的建议:向每个人授予完全权限(-a
,或 'a'll ),但仅设置可执行位(即: use +X
, NOT +x
)如果它是一个目录,或者已经设置了一个或多个“用户”、“组”或“其他”,如下所示:
sudo chmod -R a+rwX /media/username/nameofdrive
Run Code Online (Sandbox Code Playgroud)
man chmod
关于大写X
与小写x
选项的说明:
...仅当文件是目录或已具有某些用户 (X) 的执行权限时才执行/搜索,...
但是,更好的是,如果您可以逃脱它:如果您确实不需要保证每个人的写入权限,只需确保驱动器上的每个人至少拥有读取权限,如下所示:
sudo chmod -R a+rX /media/username/nameofdrive
Run Code Online (Sandbox Code Playgroud)
-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
Run Code Online (Sandbox Code Playgroud)
chmod
找到一堆我的个人chmod
示例] eRCaGuy_dotfiles/git 和 Linux cmds、帮助、提示和技巧 - Gabriel.txt 归档时间: |
|
查看次数: |
53248 次 |
最近记录: |