我想知道为什么和这样的目录/usr
由/usr/local/
root 拥有和创建。通常我以普通用户身份登录,我想将我个人使用的程序存储在这些目录中。例如,Android Studio 就存储在那里。每当我需要进行更新或进行任何类型的更改时,由于我没有以 root 身份登录,因此不会授予权限。
目录名“usr”已经暗示(正常的)基于用户的程序应该存在。
难道我不明白这个目录背后的概念吗?
答案1
答案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/local
sudo
答案3
该目录用于管理员全局安装的软件。如果您想自己安装软件,请在主目录中进行安装。检查跳频有关标准位置的更多信息。
答案4
尝试将你喜欢的文件放在子目录中;例如 ~/program/runthis
然后在 /usr/bin 中执行
sudo ln -s /home/用户名/程序/runthis runthis
然后做
chown -h 用户名:用户名 runthis
这样应该会在 /usr/bin 目录中创建一个仅具有您的权限的符号链接,该符号链接指向位于您的主目录子文件夹中的文件。这样,该文件的执行仅具有您的用户权限,永远不会具有 root 权限,因为符号链接和可执行文件归您所有,而不是 root。这对于在个人计算机上运行并限制程序的访问权限来说没问题。