使用capsh删除所有功能

时间:2015-03-02 14:08:31

标签: linux linux-capabilities capsh

我正在尝试使用capsh为自己授予一个对某个用户根本没有任何功能的shell。这样我就可以测试与非root相关但只具有某些功能的安全性内容。

基本上我想让shell运行类似于此的东西。这将模拟测试程序运行的状态。

capsh --print
Current: =
Bounding set =
Securebits: 00/0x0/1'b0
 secure-noroot: no (unlocked)
 secure-no-suid-fixup: no (unlocked)
 secure-keep-caps: no (unlocked)
uid=10101(u0_a101)
gid=10101(u0_a101)
groups=9997(everybody),50101(all_a101)

然后我希望能够再次运行capsh以授予用户一些功能和/或更改uid / gid(如果可能的话)。

如果有人有好的参考资料,我还没有找到关于capsh的任何好的教程。

http://man7.org/linux/man-pages//man1/capsh.1.html

1 个答案:

答案 0 :(得分:0)

  1. 列出当前功能

    capsh --print
    Current: =
    Bounding set=cap_chown,cap_dac_override,[...]
    Securebits: 00/0x0/1'b0
     secure-noroot: no (unlocked)
     secure-no-suid-fixup: no (unlocked)
     secure-keep-caps: no (unlocked)
    uid=1000(user)
    gid=1000(user)
    groups=4(adm),10101(u0_a101)
    
  2. 1. 边界部分删除所有功能:

    capsh --drop=cap_chown,cap_dac_override,[...]
    
    1. +切换用户和组:

      capsh --gid=10101 --drop=cap_chown,cap_dac_override,[...] --uid=10101
      
      1. +加入群组

        capsh --gid=10101 --drop=cap_chown,cap_dac_override,[...] \
        --uid=10101 --groups=9997,50101
        
        1. +执行申请

          capsh --gid=10101 --drop=cap_chown,cap_dac_override,[...] \
          --uid=10101 --groups=9997,50101 -- -c 'ping 127.0.0.1'