Примечание: пожалуйста, не стесняйтесь редактировать вопрос - мне трудно его выразить!
Вопрос:
Как вы выдаете себя за обычного пользователя - при этом сохраняя права администратора /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 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
Общие сценарии:
Примечание: это в контексте ручного системного администрирования.
С корневым доступом:
- Создать /home /[имя пользователя] /подпапка | w /[username] как владелец
- Создать /opt /[serviceAccount] Сервис | w /[serviceAccount] как владелец
- Создать /изменить /etc /service /[someconfig] | w /[serviceAccount] как владелец
Как правило, я выполняю много-много команд, и возвращаться за изменяющимися битами разрешений утомительно, непоследовательно, а уязвимость безопасности возникает из-за забывчивости администратора или опечаток.