如何在 Linux 内核级别限制特权用户访问?

How to limit privileged user access at Linux Kernel level?

我在 learning Linux Kernel Programming 上找到了这个答案,我的问题更具体地针对 Linux 内核的安全功能。我想知道如何限制特权用户或进程对其他进程和文件的访问权限,而不是 root 的完全访问权限。

到目前为止我发现:

列表是否完整?在写问题时,我发现 fanotify 可以监视文件系统事件,例如用于防病毒扫描。可能有更多可用的安全功能。

是否还有更多 Linux 安全功能可用于 以可编程方式 从文件或进程的内部或外部限制特权访问?也许有一个完整的列表。

您可以添加 EFS、AppArmor、Yama auditctl、ausearch、aureport 类似于 fanotify 的工具: Snort、ClamAV、OpenSSL、AIDE、nmap、GnuPG

传统的 unix 方法是限制需要更多特权但又包含它的进程,以便它不能使用超过它需要的东西是 "chroot" 它。

chroot 更改进程的表观根。如果操作正确,它只能访问新创建的 chroot 环境(又名 chroot jail)中的那些资源 例如它只能访问那些文件,也只能访问那些设备等

创建一个自愿执行此操作的流程相对容易,而且并不罕见。

要创建一个环境,让现有的软件(例如网络服务器、邮件服务器等)在其中感觉自在并且仍然正常运行是需要经验的。最主要的是找到所需的最少资源集(共享库、配置文件、设备、相关服务(例如系统日志)……)。