为什么 /usr/local/ 归 root 所有?

为什么 /usr/local/ 归 root 所有?

我想知道为什么和这样的目录/usr/usr/local/root 拥有和创建。通常我以普通用户身份登录,我想将我个人使用的程序存储在这些目录中。例如,Android Studio 就存储在那里。每当我需要进行更新或进行任何类型的更改时,由于我没有以 root 身份登录,因此不会授予权限。

目录名“usr”已经暗示(正常的)基于用户的程序应该存在。

难道我不明白这个目录背后的概念吗?

答案1

没有什么可以阻止您在没有 sudo 权限的情况下在本地安装和运行应用程序。本地意味着:在您自己的主目录中. 事情本该如此。

您不应该对与系统上可能的其他用户共享的目录拥有相同的权限。

关于 /usr

关于字面意思的解释usr各不相同unix系统资源, 到用户系统资源. 后者不应被解释为拥有由用户,但作为服务用户,相反服务体系这里我们读到/usr

只读用户数据的二级层次结构;包含大多数(多)用户实用程序和应用程序。

底线是,所有(现代)解释都提到,这是关于“可共享的只读数据“, 和: ”不应该写给

答案2

目录名“usr”已经暗示(正常的)基于用户的程序应该存在。

自 Unix 历史的黑暗时代以来,它就没有再出现过。缩写“etc”和“usr”是什么意思?

现在,该/usr目录由管理员处理。但是,几乎所有内容都由/usr软件包处理,并且/usr/local是管理员可以在软件包管理系统之外安装本地软件的地方。让我们查阅文件系统层次标准

1.4. /usr/local :本地层次结构

目的

层次/usr/local结构供系统管理员在本地安装软件时使用。它需要确保在系统软件更新时不会被覆盖。它可用于可在主机组之间共享但在 中找不到的程序和数据/usr

本地安装的软件必须放在 内,/usr/local而不是内/usr,除非是为了替换或升级 中的软件而安装的/usr

对于现代 Linux 系统中的/usr和,普通用户不应具有写入权限。在单用户系统中,当然,您可以授予 写入权限,但您无论如何都拥有特权(您需要多久写入这些目录一次?)。/usr/local/usr/localsudo

答案3

该目录用于管理员全局安装的软件。如果您想自己安装软件,请在主目录中进行安装。检查跳频有关标准位置的更多信息。

答案4

尝试将你喜欢的文件放在子目录中;例如 ~/program/runthis

然后在 /usr/bin 中执行

sudo ln -s /home/用户名/程序/runthis runthis

然后做

chown -h 用户名:用户名 runthis

这样应该会在 /usr/bin 目录中创建一个仅具有您的权限的符号链接,该符号链接指向位于您的主目录子文件夹中的文件。这样,该文件的执行仅具有您的用户权限,永远不会具有 root 权限,因为符号链接和可执行文件归您所有,而不是 root。这对于在个人计算机上运行并限制程序的访问权限来说没问题。

相关内容