linux进程能力管理
安装能力查看工具集
yum install libcap-ng-utils
主要包含以下工具
[root@thatsit ~]# rpm -ql libcap-ng-utils|grep bin
/usr/bin/captest
/usr/bin/filecap
/usr/bin/netcap
/usr/bin/pscap
[root@thatsit ~]#
工具使用
查看某个进程的capabilities
[root@thatsit ~]# pscap |grep 36010
35660 36010 root java chown, dac_override, fowner, fsetid, kill, setgid, setuid, setpcap, net_bind_service, net_raw, sys_chroot, mknod, audit_write, setfcap
[root@thatsit ~]#
相关链接
文章摘抄
调整能力
在前面的文章中,我介绍了基于Linux功能的容器分离。
借助Linux功能,你可以分离根用户权限,形成更小的特权群。目前,在默认情况下,Docker容器只拥有以下功能。
CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD, NET_RAW, SETGID, SETUID, SETFCAP, SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE
在某些情况下,你可能要调整此列表,例如,如果你正在构建一个运行ntpd或crony的容器,那么需要能够修改主机的系统时间。由于需要CAP_SYS_TIME,该容器将无法运行。在Docker的旧版本中,容器必须在--privileged模式下运行,该模式关闭了所有的安全策略。
在Docker1.3版本中添加了
--cap-add
和--cap-drop
。现在为了运行ntpd容器,你可以只需运行:docker run -d --cap-add SYS_TIME ntpd
其中只将SYS_TIME功能添加到了你的容器中。
另如,如果你的容器没有更改UID/GID的任何进程,你可以从容器中删除这些功能,使其更加安全。
docker run --cap-drop SETUID --cap-drop SETGID --cap-drop FOWNER fedora /bin/sh
# pscap | grep 2912 5417 2912 root sh chown, dac_override, fsetid, kill, setpcap, net_bind_service, net_raw, sys_chroot, mknod, audit_write, setfcap
或者你可以删除所有的功能后,再进行一一添加。
docker run --cap-drop ALL --cap-add SYS_TIME ntpd /bin/sh
# pscap | grep 2382 5417 2382 root sh sys_time
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux capalibities - Python技术站