我想知道为什么诸如/usr
和之类的目录/usr/local/
是由root拥有和创建的。通常我以普通用户身份登录,并且我想将我个人使用的程序存储在这些目录中。例如,Android Studio 存储在那里。每当我需要进行更新或进行任何类型的更改时,都不会授予权限,因为我没有以 root 身份登录。
目录名称“usr”已经暗示应该存在(普通)基于用户的程序。
我没有得到这个目录背后的概念吗?
我想知道为什么诸如/usr
和之类的目录/usr/local/
是由root拥有和创建的。通常我以普通用户身份登录,并且我想将我个人使用的程序存储在这些目录中。例如,Android Studio 存储在那里。每当我需要进行更新或进行任何类型的更改时,都不会授予权限,因为我没有以 root 身份登录。
目录名称“usr”已经暗示应该存在(普通)基于用户的程序。
我没有得到这个目录背后的概念吗?
没有 sudo 权限,没有什么可以阻止您在本地安装和运行应用程序。本地,意思是:在你自己的主目录中。这就是它应该的样子。
您不应该对与系统上可能的其他用户共享的目录具有相同的权限。
关于 /usr
从unix 系统资源到用户系统
usr
资源,对字面含义的解释各不相同。然而,后者不应被解释为用户拥有,而应被解释为服务用户,与服务系统相反。在这里,我们读到:/usr
底线是所有(现代)解释都提到它是关于“可共享的只读数据”,并且:“不应该写入”
自从 Unix 历史的黑暗时代以来,如果它曾经是的话。缩写“etc”和“usr”是什么意思?
现在,该
/usr
目录由管理员处理。但是,几乎所有内容/usr
都由包处理,并且/usr/local
管理员可以在包管理系统之外安装本地软件。让我们参考一下文件系统层次标准:对于现代 Linux 系统
/usr
和/usr/local
现代 Linux 系统,普通用户不应该具有写权限。当然,在单用户系统上,您可以授予对 的写访问权/usr/local
,但sudo
无论如何您都拥有特权(您必须多久写一次这些目录?)。该目录用于管理员全局安装的软件。如果您想自己安装软件,请在您的主目录中进行。有关标准位置的更多信息,请查看FHS。
尝试将您喜欢的文件放在子目录中;比如~/program/runthis
然后在 /usr/bin 做
sudo ln -s /home/用户名/程序/runthis runthis
然后做
chown -h 用户名:用户名 runthis
这应该在 /usr/bin 目录中创建一个仅具有您的权限的符号链接,该符号链接指向驻留在您的主目录的子文件夹中的文件。这样,该文件的执行仅具有您的用户权限,并且从不具有 root 权限,因为符号链接和可执行文件归您所有,没有 root。这对于在个人机器上运行并限制程序的访问是很好的。