通过linux capability 赋予,可以避免使用sudo执行一些应用,比如读取/proc下其它用户的信息。
如通过sudo setcap cap_dac_override,cap_sys_ptrace+eip ./process-exporter
取消capability : sudo setcap “” ./process-exporter
但在如下环境:
Linux 140.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
下测试发现有如下问题:
- 文件更新需要重新赋予capability,包括使用vi修改shell内容
- 给shell赋予capability,不能inherit,即shell内启动的process没有相关capability
- 使用/etc/capability.conf配置,可以使用capsh --print可以看到相关capability,但同样无法对启动process生效,即没有作用
其它有用url:https://www.insecure.ws/linux/getcap_setcap.html