Что на самом деле делает capsh --print?

Если вы находитесь в bash(, а не вsh)и вам НЕ нужна точность ниже -секунды, вы можете вообще пропустить вызов dateи сделать это без порождения каких-либо дополнительных процессов, без необходимости разделения комбинированный вывод и без необходимости захвата и анализа вывода каких-либо команд:

# SECONDS is a bash special variable that returns the seconds since set.
SECONDS=0
mycmd <infile >outfile 2>errfile
DURATION_IN_SECONDS=$SECONDS
# Now `$DURATION_IN_SECONDS` is the number of seconds.
0
04.03.2020, 04:20
2 ответа

Просто. Это НЕ возможности пользователя. Это возможности самого себя. Так что вещи, которые он унаследовал от своего родителя.

Я помню, (несколько лет назад ), участвуя в обсуждении capsh, мы пытались выяснить, для чего он нужен. Мы решили, что это почти бесполезно, обсуждение привело к изобретению возможностей окружения (Унаследованных и эффективных ). Я не пробовал capshс момента существования эмбиентных возможностей. Они нужны только при создании sudoвозможностей (, таких какcapsh). Или когда-нибудь более специализированная обертка.

2
28.04.2021, 23:21

capsh— это инструмент для изучения того, как использовать и проверять возможности и предложения API libcap. Вы можете использовать его для отладки того, что происходит при типах вопросов.

Важным свойством capshявляется то, что аргументы оцениваются строго слева направо. Итак, когда вы пытаетесь выяснить, почему что-то не заканчивается в желаемом состоянии, вы можете вставить аргумент --print, чтобы понять это.:--printпросто выводит текущее состояние выполняющегося процесса capsh.

Вы должны думать об этом как о своего рода швейцарском -армейском -ноже с функциями, связанными с возможностями. Дерево сборки libcapиспользует его вquicktest.shдля проверки того, что библиотека все еще работает с современными ядрами и т. д.Этот сценарий содержит целую кучу проработанных примеров и ожидаемых результатов использования libcapи функций ядра.

Это включает в себя возможности Ambient, а также не -стандартные режимы работы ядра (, также известные какlibcapрежимы).

Например, из-за того, как работает ядро, эти две последовательности дают разные результаты:

$ sudo capsh --iab=^cap_dac_override --user=$(whoami) --print
$ sudo capsh --user=$(whoami) --iab=^cap_dac_override --print

Вы можете автоматизировать ответ на вопрос Повышает ли это окружающий бит примерно так:

$ sudo capsh --user=$(whoami) --iab=^cap_dac_override --has-a=cap_dac_override && echo yes

Кроме того, если вы хотите исследовать мир так, как его представлял проектный комитет POSIX.1e , вы можете попробовать что-то вроде этого:

$ sudo capsh --mode=PURE1E --user=$(whoami) --
2
21.05.2021, 03:09

Теги

Похожие вопросы