При использовании setcap, где хранится разрешение?

Используйте кавычки:

cat bin/script.sh
#!/bin/sh
printf '<%s>\n' "$@"

command = "/ home / user / bin / script.sh \" $ {SSH_ORIGINAL_COMMAND} \ "" ssh-rsa AA ...

ssh -i .ssh/id_rsa.special hamilton '*'
<*>
ssh -i .ssh/id_rsa.special hamilton 'foo bar'
<foo bar>

Но также вы получите:

ssh -i .ssh/id_rsa.special hamilton '*' 'foo bar'
<* foo bar>

Не уверен, что это проблема для вас или нет.

И я был сбит с толку:

И, очевидно, я не могу использовать "inside the command ="… "

Я подумал, что это своего рода ограничение в вашей задаче, поэтому удалил свой ответ.
{{1 }} Я рад, что мой ответ помог вам в решении вашей задачи!

11
26.08.2017, 19:39
2 ответа

Расширенные разрешения, такие как списки контроля доступа, установленные setfaclи флаги возможностей, установленные setcap, хранятся в том же месте, что и традиционные разрешения и флаги set[ug]id, установленныеchmod:в индексном узле файла.

(На самом деле они могут храниться в отдельном блоке на диске, потому что индексный дескриптор имеет фиксированный размер, в котором есть место для традиционных битов разрешений, но нет места для потенциально неограниченных расширенных разрешений. Но это имеет значение только в редких случаях, например, если нужно позаботиться о том, чтобы setcapне хватило места на диске. Но даже chmodможет закончиться место на диске в системе, использующей дедупликацию!)

GNU ls не отображает атрибуты setcap файла. Вы можете отобразить их с помощьюgetcap. Вы можете перечислить все расширенные атрибуты с помощьюgetfattr -d -m -; атрибут setcap называется security.capabilityи закодирован в двоичном формате, который getcapдекодирует для вас.

11
27.01.2020, 19:58

setcap устанавливает возможности файла, которые хранятся в расширенном атрибуте файловой системы. Они объясняются в man 7 capabilities:

.

The file capability sets are stored in an extended attribute (see setxattr(2)) named security.capability.

Вы можете проверить возможности запущенного процесса, изучив поля CapInh/CapPrm/CapEff в/proc/PID/status. См. мой ответ на « Как установить возможности с помощью команды setcap? » для объяснения того, как возможности применяются к процессу при выполнении.

5
27.01.2020, 19:58

Теги

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