我正在尝试使用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的任何好的教程。
答案 0 :(得分:0)
列出当前功能
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)
从1.
边界部分删除所有功能:
capsh --drop=cap_chown,cap_dac_override,[...]
+切换用户和组:
capsh --gid=10101 --drop=cap_chown,cap_dac_override,[...] --uid=10101
+加入群组
capsh --gid=10101 --drop=cap_chown,cap_dac_override,[...] \
--uid=10101 --groups=9997,50101
+执行申请
capsh --gid=10101 --drop=cap_chown,cap_dac_override,[...] \
--uid=10101 --groups=9997,50101 -- -c 'ping 127.0.0.1'