Как избежать использования sudo при работе с файлами, принадлежащими учетной записи службы?

Не из командной строки, а, возможно, из другого сценария инициализации. В старые недобрые времена команда типа

 $ sudo bash -c "find / -xdev -type f -print0 -size -1M | xargs -0 grep rsyslog"

или, что более вероятно,

$ sudo bash
# find / -xdev -type f -print0 -size -1M | xargs -0 grep rsyslog

будет просматривать все файлы в системе в поисках простых файлов, содержащих нужную строку. Параметр -mount в find не позволяет ему находиться в /proc, и в наши дни grep достаточно умен, чтобы заметить, когда файл выглядит как двоичный файл, содержащий строку. -print0 и опция -0 для xargs работают вместе и гарантируют правильную обработку файлов с нечетными символами, например пробелами, которые в противном случае могли бы запутать парсер. И "-size -1M" гарантирует, что просматриваются только файлы размером один мегабайт или меньше - файлы большего размера вряд ли вас интересуют - rsyslog, скорее всего, будет запущен из сценария.

Есть еще одна возможность, конечно, и это то, что программа запускается удаленно. Я легко могу представить, как кто-то запускает rsyslog из сценария ssh, привязанного к определенному ключу, который делает только это, он может даже не позволить вам получить оболочку, суть в том, что вы запускаете syslogd, когда машина, которая должна получить системные журналы там, чтобы взять их.

Такая команда, как pstree, может показать вам, что является дочерним, и хотя легко можно выйти из-под своего родителя, чтобы вы были унаследованы init,

1
17.08.2016, 14:50
2 ответа

Есть много способов. Вы уже привели несколько примеров, например, вхождение в группу "webapp". Другим способом может быть использование ACL для ограничения доступа пользователя к каталогу и файлам.

0
28.01.2020, 01:12

Ну, вы сами ответили на свой вопрос.

Это действительно зависит от вашего случая использования. Если нет никаких побочных эффектов для добавления пользователя в группу webapp (например, файлы с возможностью записи для группы или конфиденциальные файлы с паролями, к которым пользователь не должен иметь доступ, и т. Д.), Это был бы мой выбор по умолчанию - вы не рискуйте поломкой приложения (или связанных скриптов, таких как cron, logrotate и т. д.) из-за изменения группы, и вы можете легко увидеть, какой пользователь к чему имеет доступ.

0
28.01.2020, 01:12

Теги

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