zoukankan      html  css  js  c++  java
  • capacilitys 持续集成

    目前看好像是说以docker为例来看看这个权限到底是怎么来的?

    可以通过在二进制上setcap得到,也可以通过函数自己用setcap得到,两种方法,docker肯定是第二种方法啊,docker中间肯定也是有一个中间进程去执行调用了setcap去set自己得到的,这个时候这些set的标志就不在要执行的二进制上了。

    不就是一种查看方式么,都是可以设置的;

    setgid设置了可执行文件的一些权限,那么现在这个可执行权限就放在了可执行文件的xattr里了,到了要执行的时候直接就拿过来执行。只需要这样设置就可以了,当然了如果你是root,那么有了capability之后,所有用户执行这个二进制文件就都可以啦?

    这个好像不是很合理呢?比如ping操作如果我只想小红用,小名不能用呢?这里又来了一套大名顶顶的acl了了。

    //20180304

    //

    问题1:如何赋予一个进程某种cap

    1) cap_chown=eip是将chown的能力以cap_effective(e),cap_inheritable(i),cap_permitted(p)三种位图的方式授权给相关的程序文件.

    sudo setcap cap_chown=eip e i p c

    问题2:允许更改任意文件的所有权

    sudo setcap cap_chown `which chown`

    测试一下子把我的权限给用了

    网上有人说是否做了上面的设置后,这些信息是填充在了哪里?

    http://www.newsmth.net/nForum/#!article/LinuxDev/59422?au=zylthinking

    咋确认这个问题呢?用到了两个技巧:

    1)怎么查看setcap属于哪个包?

    2)使用stap跟踪

    全TM是放在了文件系统的xatrr哈!

    cap用到了文件系统的啥功能?

    sudo 是干嘛的?

    root和capacility有什么区别?是不是有了root就有了所有?root的进程是

     并不是说root执行的进程他就会有所有的capacility,还需要

    http://www.iteye.com/topic/807807

    // 20180304 12:33

    其中docker 支持的权限包括下面:

    CAP_NET_RAW 13 1
    CAP_NET_BIND_SERVICE 10 1
    CAP_AUDIT_READ 37 1
    CAP_AUDIT_WRITE 29 1
    CAP_DAC_OVERRIDE 1 1
    CAP_SETFCAP 31 1
    CAP_SETPCAP 8 1
    CAP_SETGID 6 1
    CAP_SETUID 7 1
    CAP_MKNOD 27 1
    CAP_CHOWN 0 1
    CAP_FOWNER 3 1
    CAP_FSETID 4 1
    CAP_KILL 5 1
    CAP_SYS_CHROOT 18  

    linux内核支持的所有的权限:

    (不看不知道,linux内核中的权限管理还真是复杂,信息量颇多,后面就开始慢慢积累吧,看下capacilitys)

    CAP_CHOWN:修改文件属主的权限

    CAP_DAC_OVERRIDE:忽略文件的DAC访问限制

    CAP_DAC_READ_SEARCH:忽略文件读及目录搜索的DAC访问限制

    CAP_FOWNER:忽略文件属主ID必须和进程用户ID相匹配的限制

    CAP_FSETID:允许设置文件的setuid位

    CAP_KILL:允许对不属于自己的进程发送信号

    CAP_SETGID:允许改变进程的组ID

    CAP_SETUID:允许改变进程的用户ID

    CAP_SETPCAP:允许向其他进程转移能力以及删除其他进程的能力

    CAP_LINUX_IMMUTABLE:允许修改文件的IMMUTABLE和APPEND属性标志

    CAP_NET_BIND_SERVICE:允许绑定到小于1024的端口

    CAP_NET_BROADCAST:允许网络广播和多播访问

    CAP_NET_ADMIN:允许执行网络管理任务

    CAP_NET_RAW:允许使用原始套接字

    CAP_IPC_LOCK:允许锁定共享内存片段

    CAP_IPC_OWNER:忽略IPC所有权检查

    CAP_SYS_MODULE:允许插入和删除内核模块

    CAP_SYS_RAWIO:允许直接访问/devport,/dev/mem,/dev/kmem及原始块设备

    CAP_SYS_CHROOT:允许使用chroot()系统调用

    CAP_SYS_PTRACE:允许跟踪任何进程

    CAP_SYS_PACCT:允许执行进程的BSD式审计

    CAP_SYS_ADMIN:允许执行系统管理任务,如加载或卸载文件系统、设置磁盘配额等

    CAP_SYS_BOOT:允许重新启动系统

    CAP_SYS_NICE:允许提升优先级及设置其他进程的优先级

    CAP_SYS_RESOURCE:忽略资源限制

    CAP_SYS_TIME:允许改变系统时钟

    CAP_SYS_TTY_CONFIG:允许配置TTY设备

    CAP_MKNOD:允许使用mknod()系统调用

    CAP_LEASE:允许修改文件锁的FL_LEASE标志

  • 相关阅读:
    Linux安装zookeeper以及部署dubbo-admin
    springboot+layui+mybatis-plus的批量删除(批量修改)
    springboot打包jar与war包
    drf-books系列接口作业和分页器
    drf-过滤排序异常处理封装Response对象
    drf-认证权限频率
    drf-路由组件
    视图组件
    请求和响应
    Serializer和ModelSerializer
  • 原文地址:https://www.cnblogs.com/honpey/p/8504390.html
Copyright © 2011-2022 走看看