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

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

直到现在我发现:

>自由访问控制(DAC)的用户和组,区分读取,写入和执行用户,组和其他
>用户root用于更高权限的任务
> setuid和setgid用于扩展用户的DAC并设置呼叫过程的组/用户ID,例如用户运行具有root权限的ping以打开Linux套接字
>细粒度权利的能力,例如删除suid位并设置cap_net_raw
>控制组(Cgroup)以限制对资源(即cpu,网络,io设备)的访问
>命名空间,用于分隔IPC,文件系统,pid上的进程视图
> Secure Computing(Seccomp)限制系统调用
> Linux安全模块(LSM),用于添加其他安全功能,如强制访问控制,例如: SELinux与类型执行

清单是否完整?在编写问题时,我发现fanotify监视文件系统事件,例如用于反病毒扫描.可能有更多安全功能可用.

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

解决方法

传统的unix方法限制一个过程,该过程以某种方式需要更多特权并且包含它以使其不能使用超过它所需要的更多特权来“chroot”它.

chroot改变了进程的明显根.如果做得对,它只能访问新创建的chroot环境中的那些资源(aka.chroot jail)
例如它只能访问这些文件,但也只能访问那些设备等.

创建一个自愿地做到这一点的过程相对容易,并不常见.

创建一个环境,其中现有的软件(例如网络服务器,邮件服务器……)在家中感觉并且仍然正常运行是需要经验的事情.主要的是找到所需的最小资源集(共享库,配置文件,设备,依赖服务(例如syslog),……).

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...