我最近了解到 Arch Linux 仅将所有应用程序安装在 /root 目录中,而其他发行版为用户提供了安装在 /home 目录中的选项?
为什么会这样呢?
作为后续,这是否意味着如果恶意软件安装在根目录中并因此可以访问整个操作系统,用户安全就会受到损害?将应用程序安装在 /home 不是更好吗?人们应该担心这个问题吗?
答案1
我不确定你从哪里得到你的信息。
拱门确实不是将所有应用程序安装到该/root
目录。二进制文件位于 中/usr/local/bin
,其他内容往往位于/usr/share
、/usr/lib
和/usr/local
等中。这是完全正常的。但是,安装将由文件夹中的多个用户使用的应用程序/home
则不然。
答案2
包中包含的任何文件在系统上的目的地由您将使用的包管理器负责。
我通常认识的所有包管理器默认尊重标准地点某些软件包可能存在差异(优先选择 /usr/local 而不是 /usr,区分 /bin 和 /usr/bin /lib 和 /usr/lib... 或不区分)
这默认基目录此层次结构 (/)能根据包管理器以某种方式进行更改。 吃豆人(archlinux 的默认包管理器)可以使用以下命令启动-r选项以指定替代安装根目录。
因此,如果您的所有软件包都安装在 /root 中并且您不希望这样,请确保您没有覆盖默认启动值pacman -r /root
。如果您希望这些软件包明确地安装在 /home 中,pacman -r /home
并且您对标准位置感到满意,那么只需采用默认位置并且不使用 r 选项即可。
出于安全考虑,如@cas在评论中写道:
顺便说一句,程序的位置并不真正影响系统安全(尽管它可能会阻止普通用户运行安装在 /root 下的软件,因为普通用户可能无权访问 /root)。重要的是谁来管理它,以及他们拥有什么权限。如果程序以普通用户身份运行,它将仅具有该用户的权限(除非它是 setuid 程序)
除此之外,如果您希望 /root 作为基本目录,您将需要以 root 身份运行 pacman 本身,因此会面临以 root 身份运行任何程序的所有安全隐患。