SYS_ADMINfunction赋予docker工程师
如果可能,build议避免给予容器privileged
。 而不是, --cap-add SYS_ADMIN
用户被鼓励使用--cap-add SYS_ADMIN
(例如)。
但是,在我看来:– --cap-add SYS_ADMIN
相当于--privileged
。 为什么?
从文档你可以阅读: http : //man7.org/linux/man-pages/man7/capabilities.7.html
CAP_SYS_ADMIN使您可以:
调用setns(2)(在目标名称空间中需要CAP_SYS_ADMIN);
(是否有可能“命名空间”function?**)。 AFAIK它不是。
docker run --cap-add SYS_ADMIN ubuntu sleep 360 (id that container= d8243d6019b0) docker exec d8243d6019b0 getpcaps 1 (1 is pid of sleep) Capabilities for `1': = cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,**cap_sys_admin**,cap_mknod,cap_audit_write,cap_setfcap+eip
和;
getpcaps 32735 (32735 is a pid of sleep in main(root) namespace) Capabilities for `32735': = cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,**cap_sys_admin**,cap_mknod,cap_audit_write,cap_setfcap+eip
所以,容器在container namespace
和host namespace
都有cap_sys_admin。
因此,容器可以nsset
到主机名称空间。
我的问题是:
- 是否有可能“命名空间”function?**
- 我的推理是否正确?