我有一个硬盘分区,没有挂载点,刚格式化为 ext4 文件系统。我想在那里存储自己的文件。但尝试在那里创建任何东西时,却告诉我权限被拒绝。我删除了该分区并重新创建它,结果却遇到了完全相同的情况。我怎样才能让该分区不受任何限制地使用?我根本不知道为什么会发生这种情况…… chown 命令不起作用,没有“sudo”它会返回权限被拒绝,这很可笑(这就是我首先使用该命令的原因),而使用“sudo”实际上什么也没有发生。
答案1
回答您的问题:
据我所知,lubuntu 文件管理器不允许使用任何没有挂载点的分区,除非具有 root 访问权限。
和
我永远不需要更改新格式化的硬盘的权限,就好像它是别人拥有的一样。
- 这与 Lubuntu 无关。Ubuntu 和至少其他几个 Linux 发行版都是这样运行的。
- 这与文件管理器无关。命令行访问也是这样工作的。
- 这与磁盘或分区无关。这与文件夹有关。(稍后还会涉及这些文件夹的内容,例如其中的文件和子目录。但那是以后的事了。)
做一个实验:
sudo mkdir /mnt/test_dir_1
或者,为了证明它完全不相关/mnt
,直接在中的另一个/
:
sudo mkdir /test_dir_2
- 正如您所见,需要 sudo 来创建这些目录。
- 没有安装任何东西,也没有与磁盘有关的东西;这些只是普通目录。
- 现在继续尝试将任何内容复制到这些目录中。
- 呃。权限被拒绝。您需要
sudo
更改这些目录的内容。
- 呃。权限被拒绝。您需要
为什么会这样?因为你用 sudo 创建了它们。而且你必须使用 sudo,因为它们在你的/home/<YOURUSERNAME>
目录之外。你可以自由移动东西,并且只能在用户自己的目录中更改文件。在其他地方你很快就会受到限制。
/mnt/
、/mnt/test_dir_1
和/test_dir_2
不在您的主目录内,因此对您的用户而言是受限区域。您需要 sudo 才能在其中放置或修改任何内容。在大多数地方,您至少可以获得读取权限而无需 sudo:允许列出内容和打开文件。但更改任何内容都需要 sudo。这是标准的 Linux 内容。稍后我们将了解它为什么会这样工作。
有趣的是,如果没有 root 访问权限,我甚至无法修改 fstab 文件。
现在您知道为什么了。该/etc/fstab
文件位于/etc
一个受到严格限制的系统文件夹中。
现在开始一个不同的实验。请继续:
# This creates an empty text file:
sudo touch /mnt/test_dir_1/test.txt
# This lists the contents and shows you the new file in there:
ls -l /mnt/test_dir_1
现在,当您安装一个分区时,事情可能会变得有点(更)混乱。
将分区挂载/mnt/test_dir_1
到取代将该目录与另一个代表分区的目录放在一起。
test.txt
将从 中消失/mnt/test_dir_1
,而该分区已安装在那里。
当您使用该命令卸载分区时umount
,原始内容将“返回”,您可以test.txt
再次在那里看到它。
继续:
当我使用
chown
命令时sudo
,什么都没发生,也没有解决问题。它只是接受了命令,但没有做出任何反应。
当chown
设法顺利运行时,它不会返回任何消息。
事后您可能没有察觉到任何变化的原因可能是,其中的所有内容都已受到您之前以管理员身份使用文件管理器创建和修改它们这一事实的影响。现在,所有内容都属于root
,而不是您。您的用户仍然被拒绝权限,您仍然需要 sudo 才能修改它们。
从理论上讲,
sudo chown -R YOURUSERNAME:YOURUSERNAME /mnt/my_stuff
(请注意-R
,对于递归而言)应该可以解决这个问题。
现在你可能会注意到当你发出此命令时,分区是否挂载在此目录上会产生重要影响。
为了更好地衡量,在这个特定情况下,您可以在两种情况下运行它。一次是在分区未安装时,一次是在分区安装时。这样就可以了。
您如何形成关于所有权和许可的想法?
使用ls -l
命令列出目录中的内容。这会显示出来。
让我们使用之前sudo touch
创建文本文件的例子。
ls -l /mnt/test_dir_1
-rw-r--r-- 1 root root 0 Feb 14 16:26 test.txt
此行显示该文件归属于该组的用户test.txt
所有。root
root
# This will change the ownership of all contents, giving them to you.
sudo chown -R YOURUSERNAME:YOURUSERNAME /mnt/test_dir_1
ls -l /mnt/test_dir_1
-rw-r--r-- 1 YOURUSERNAME YOURUSERNAME 0 Feb 14 16:26 test.txt
但为什么一切必须如此进行呢?
我相信这是为了系统安全。当您登录时,您最终会成为常规非 sudo 用户。
发出的任何命令和运行的任何脚本都是以用户身份执行的。如果您要执行任何会影响系统本身的操作,则必须先使用密码进行身份验证,此操作由sudo
before 命令触发。
问题是,脚本有时会在您不知情的情况下运行。潜在的恶意脚本可能会进入计算机,在后台运行,并试图更改系统。但由于这种几乎无处不在的限制系统,恶意脚本不会对系统造成太大危害。因为一切都受到这种所有权和权限系统的保护。
这种防御的理论证明可能是“任意代码执行”漏洞。它可能发生在处理来自计算机外部的数据的各种程序上;例如来自互联网的内容。
视频编解码器有时会受到此类漏洞的影响。当您观看恶意准备的视频时,视频流可能包含视频播放器应用使用的视频解析器编解码器的“陷阱”。这可能会诱使编解码器/播放器进入所谓的“任意代码执行”状态,其中会生成一个“脚本”并在您的系统上运行。
那么,视频播放器应用由您的用户运行就很重要了。这样,生成并执行的恶意代码也将代表您的用户运行:如果没有 sudo 密码,脚本最终将无法实现其目标。
当然,长期的防御措施是持续更新系统软件包。一旦发现软件存在此类漏洞,就会发布更新,新的改进版本将取代旧的漏洞版本。
但是,在安装安全更新之前,受控所有权和权限的系统已经很好地将您的系统保持在一起。
但似乎不方便
您可能会像之前的成千上万的 Linux 新手用户一样说:“现在我会变得聪明,以 root/管理员身份运行所有操作,这样我就再也不用担心密码了。”
- 从第一天起,它就会危及系统的安全性(我在上面添加了一个例子)。
- 目录和文件所有权最终可能会陷入混乱,需要额外的工作来理清。
不要受到诱惑;相反,要认识到这个系统是为了您长期享受操作系统而设立的。习惯它吧。
为让生活更轻松,您可以选择一个容易且快速输入的密码。当它成为肌肉记忆时,您甚至会从中获得安慰。
答案2
我很惊讶竟然没有人提出这个建议。事实证明,PCManFM-Qt 文件管理器默认不以 root 权限打开。转到“工具”=>“以 Root 权限打开”解决了这个问题。无需分区,正如我所料。
答案3
对于安装似乎存在一些困惑。
安装完成后,您不再需要返回磁盘/或分区管理器程序。
您应该能够随时使用终端挂载分区。例如:
sudo mkdir /mnt/my_stuff
sudo chown YOURUSERNAME:YOURUSERNAME /mnt/my_stuff
然后
sudo mount /dev/sdaX /mnt/my_stuff
在这里,您将示例分区挂载/dev/sdaX
到/mnt/my_stuff
目录中。(但您必须先创建此目标目录,然后将其所有权更改为您自己(和chmod
))。
要确定确切的分区标识符,可以使用以下命令:
sudo lsblk -e 7
完成此操作后,您不能说它没有挂载点。现在它已挂载。现在它有一个“挂载点”。
您可能的意思是安装时没有指定挂载点,但这并不重要。这只是意味着,如果您希望它在重新启动后仍然存在,则必须手动添加一个条目/etc/fstab
。这使得每次启动时都会自动挂载。看这里寻找一个内容丰富的小示例。然后在网上搜索术语“etc/fstab 示例说明”或其他内容。还可以阅读有关挂载选项的内容。
考虑所有这些只是通往以下链接的入门步骤:@oldfred在他的评论:
将数据存储在第二个硬盘上,安装和将所有应用程序安装在 SSD 磁盘上,并将所有文件放在 HDD 磁盘上
现在您已经做好充分准备并且有足够的耐心来处理其中的信息。