Как временно приостановить проверки политики безопасности или временно предоставить root-доступ?

Примечание: пожалуйста, не стесняйтесь редактировать вопрос - мне трудно его выразить!

Вопрос:

Как вы выдаете себя за обычного пользователя - при этом сохраняя права администратора / root для выполнения любой команды от имени этого целевого пользователя?

Механизм для:

  1. Разрешает полный доступ root / admin для выполнения любой команды;
  2. Позволяет указать некоторую "Целевую группу";
  3. Позволяет вам указать "Целевого пользователя";
  4. И обеспечивает выполнение всех команд, сценариев и т. Д. От имени этого пользователя / группы, устанавливая "Целевого пользователя" и "Целевую группу" в качестве владельца...

Эти примеры показывают, как pkexec и / или sudo должны быть указаны для каждой команды - это то, что я пытаюсь избежать:

pkexec:

FAIL: требуется админ для префикса sudo а также pkexec,

  1. sudo pkexec -u TestUser mkdir /home/TestUser/NewFolder

    • Успех: создает папку и назначает правильные разрешения
  2. sudo pkexec -u btsync mkdir /opt/btsync

    • FAIL: не работает для учетных записей служб без домашних папок: Error changing to home directory /home/btsync: No such file or directory

Sudo:

FAIL: требуется админ для префикса sudo,

1 sudo pkexec -u btsync mkdir /opt/btsync

  • FAIL: создает папку - но назначает владельца root.
  • FAIL: требует исправления прав доступа, иногда увеличивая количество команд, введенных x3.

Желательно функционально с использованием BTSync в качестве примера:

  • root@localhost > enterElevatedShell -u btsync
  • btsync@localhost > nano /etc/asound.conf
  • многие команды вводятся вручную.
  • btsync@localhost > exit
  • root@localhost >

или же:

  • root@localhost > stopauthorizationModules
  • root@localhost > sudo -i btsync
  • btsync@localhost > nano /etc/asound.conf
  • многие команды вводятся вручную.
  • btsync@localhost > exit
  • root@localhost >

или же:

  • root@localhost > sudo --setUmask=0222 --setTargetUser=btsync
  • root@localhost > sudo -E mkdir /opt/btsync

Общие сценарии:

Примечание: это в контексте ручного системного администрирования.

С корневым доступом:

  1. Создать /home/[имя пользователя]/ подпапка | w/[username] как владелец
  2. Создать /opt/[serviceAccount] Сервис | w/[serviceAccount] как владелец
  3. Создать / изменить /etc/service/[someconfig] | w /[serviceAccount] как владелец

Как правило, я выполняю много-много команд, и возвращение за изменяющимися битами разрешений является утомительным, непоследовательным, а уязвимость безопасности возникает из-за забывчивости администратора или опечаток.

1 ответ

Чтобы создать каталог и сразу установить владельца:

sudo install -d -o owner -g group -m 755 /path/to/dir

Вам нужно использовать install для этого, если родительский каталог не доступен для записи "владельцем", как в случае с /home,

Для создания файлов просто используйте sudo

sudo -u owner touch /path/to/file

Или ви или что-то еще.

Если у вас есть файл, который вы хотите скопировать и указать владельца, вы можете снова использовать установку. Работает как cp с дополнительными опциями

sudo install -o owner -g group -m 640 file /path/to/file

Если вам нужно создать большое количество файлов, пользователей, каталогов и т. Д., И вы беспокоитесь о согласованности, возможно, вам тоже нужно взглянуть на систему управления конфигурациями, такую ​​как puppet, chef, ansible или тому подобное. Для настройки требуется немного больше работы, но есть то преимущество, что его можно использовать повторно.

Другие вопросы по тегам