在 Unix 上,很久以前,我了解到chmod:在 Unix 上设置权限的传统方法(并允许程序获得权限,使用 setuid、setgid)。
我最近在 GNU/Linux 上发现了一些较新的命令:
setfacl扩展了传统的ugo:rwx位和t位chmod。setcap给出比多个鳍状晶粒控制ug:s的位chmod。chattr 允许文件的一些其他控件(有点混合)。还有其他人吗?
我知道一个包有两个组成部分:config和data文件。在软件包升级(即安全升级)期间,data文件可以被覆盖,但config文件应始终保持不变。同时config文件通常/etc和data中/usr。然而,有时,这种区别是模糊的。
就我而言,我修改了Icedove(Thunderbird)的图标文件:
/usr/share/applications/icedove.desktop
Run Code Online (Sandbox Code Playgroud)
现在,每次有Icedove(Thunderbird) 更新时,我的更改都会被默认文件覆盖(即使它在更新之间没有更改)。
有什么办法可以防止这个特定的文件被覆盖?
将其设置为不可变chattr +i icedove.desktop的并不是一个好主意,因为它会在包升级期间产生错误。
所以我想知道是否有可能创建一个 Linux 系统,而没有任何(或几乎没有)以超级用户/root 身份运行的用户空间进程,并且其他进程没有(或几乎没有)提升权限的方法?
有哪些技术解决方案可以用来实现它?这会有什么技术缺陷?