【问题标题】:Using capsh to drop all capabilities使用 capsh 删除所有功能
【发布时间】:2015-05-02 22:11:45
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: linux linux-capabilities capsh


    【解决方案1】:
    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. Bounding 部分删除所有功能:

      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'
      

    【讨论】:

      猜你喜欢
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多