Примечание: пожалуйста, не стесняйтесь редактировать вопрос - мне трудно его выразить!
Вопрос:
Как вы выдаете себя за обычного пользователя - при этом сохраняя права администратора /root для выполнения любой команды от имени этого целевого пользователя?
Механизм для:
- Разрешает полный доступ root/admin для выполнения любой команды;
- Позволяет указать некоторую "Целевую группу";
- Позволяет вам указать "Целевого пользователя";
- И обеспечивает выполнение всех команд, сценариев и т.д. От имени этого пользователя / группы, устанавливая "Целевого пользователя" и "Целевую группу" в качестве владельца ...
Эти примеры показывают, как pkexec и / или sudo должны быть указаны для каждой команды - это то, чего я пытаюсь избежать:
pkexec:
FAIL: Требуется администратор для префикса с sudo и pkexec .
sudo pkexec -u TestUser mkdir /home/TestUser/NewFolder- Успех: создает папку и назначает правильные разрешения
sudo pkexec -u btsync mkdir /opt/btsync- FAIL: не работает для учетных записей служб без домашних папок:
Error changing to home directory /home/btsync: No such file or directory
- FAIL: не работает для учетных записей служб без домашних папок:
Sudo:
FAIL: Требуется администратор для префикса с sudo .
1 sudo pkexec -u btsync mkdir /opt/btsync
- FAIL: делает папку - но назначает владельца root.
- FAIL: требует исправления прав доступа, иногда увеличивая количество команд, вводимых x3.
Желательно функционально с использованием BTSync в качестве примера:
root@localhost > enterElevatedShell -u btsyncbtsync@localhost > nano /etc/asound.conf- многие команды вводятся вручную.
btsync@localhost > exitroot@localhost >
или же:
root@localhost > stopauthorizationModulesroot@localhost > sudo -i btsyncbtsync@localhost > nano /etc/asound.conf- многие команды вводятся вручную.
btsync@localhost > exitroot@localhost >
или же:
root@localhost > sudo --setUmask=0222 --setTargetUser=btsyncroot@localhost > sudo -E mkdir /opt/btsync
Общие сценарии:
Примечание: это в контексте ручного системного администрирования.
С корневым доступом:
- Создать /home /[имя пользователя] /подпапка | w /[username] как владелец
- Создать /opt /[serviceAccount] Сервис | w /[serviceAccount] как владелец
- Создать /изменить /etc /service /[someconfig] | w /[serviceAccount] как владелец
Как правило, я выполняю много-много команд, и возвращаться за изменяющимися битами разрешений утомительно, непоследовательно, а уязвимость безопасности возникает из-за забывчивости администратора или опечаток.
