цепочка команд терминала, каждая из которых выполняется, если файл существует

Отладка программы с привилегиями фактически дает отладчику те же привилегии. Таким образом, независимо от каких-либо настроек безопасности, для отладки программы с дополнительными привилегиями отладчик должен иметь по крайней мере все эти привилегии. Например, программа с setuid имеет привилегии как исходного, так и целевого пользователя, поэтому отладчик должен иметь привилегии обоих пользователей. На практике это означает, что отладчик должен быть root. В Linux достаточно предоставить отладчику возможность CAP_SYS_PTRACE (это не снижает эффективных привилегий отладчика, но означает, что отладчик не будет, например, случайно перезаписывать файлы другого пользователя).

Обычно удобнее отлаживать программу во время работы без дополнительных привилегий. Настройте права доступа к файлам, пути и т. д. соответственно. Если вам нужно отлаживать программу в реальных условиях с привилегиями, то отладчик нужно запускать от имени root. В Linux это может быть root в пользовательском пространстве имен, содержащем двух вовлеченных пользователей.

0
10.05.2017, 00:22
2 ответа

Просто напишите функцию:

my-git-add-.() {
  [ -e readme.md ] && doctoc readme.md
  [ -e changelog.md ] && changelogupd changelog.md
  git add .
}
4
28.01.2020, 02:15
path-exists ./readme.md    && { doctoc       readme.md;    :; } || \
path-exists ./changelog.md && { changelogupd changelog.md; :; }
git add .

Вам нужно сгруппировать команды, чтобы достичь того, чего вы хотите. Оператор : был добавлен, чтобы предоставить истинное окончание, когда doctoc может дать сбой.

2
28.01.2020, 02:15

Теги

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