«Ведомые» учетные записи пользователей в GNU / Linux

498
Vi.

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

Теперь я имитирую это, позволяя «основному» пользователю выполнять sudo -u slaveuserнастройки setfacl -dRm u:masteruser:rwx ~slaveuser.

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

Если для этого требуется простой патч ядра, все в порядке.

PS тег «selinux» не означает, что я хочу решить его с помощью SELinux, он просто несколько связан.

1
Не по сути. Смотрите SELinux. Ignacio Vazquez-Abrams 14 лет назад 0
@Ignacio Vazquez-Abrams, может ли SELinux сделать это просто (без вмешательства во многие другие вещи или работы со сложными файлами конфигурации)? Vi. 14 лет назад 0
Почему бы просто не дать пользователю доступ sudo? Затем они могут запускать команды root по желанию, просто набрав перед ними sudo (он запрашивает их собственный пароль, когда они делают это). Это гораздо более нормальное решение. Как правило, не рекомендуется запускать настольные программы от имени пользователя root или с правами root. Если вашим настольным приложениям требуются особые права доступа к определенным файлам, вам следует просто настроить их специально. Jarvin 14 лет назад 0
Это не будет тривиально с SELinux. Это просто дает возможность заставить вашу схему работать. Ignacio Vazquez-Abrams 14 лет назад 0
@ Дан Плохой комментарий. Мастер-пользователь уже может «sudo» (не для получения root-прав, а для просмотра учетных записей). Программы уже работают с отдельными учетными записями без полномочий root. Но должен быть один аккаунт, чтобы управлять ими всеми. Я не хочу, чтобы эта «Одна учетная запись» была root, поскольку я тоже запускаю там некоторые программы. Vi. 14 лет назад 0

1 ответ на вопрос

0
Gilles

Традиционная модель безопасности Unix просто не поддерживает то, что вы хотите. rootможет сделать все, а все остальные пользователи созданы равными. Сложные отношения между пользователями, как правило, требуют много работы root.

Один из возможных подходов заключается в воссоздании вашей собственной системы Linux внутри какой-либо виртуальной машины, либо с использованием подхода linux-on-linux, такого как User Mode Linux или VServer, либо с универсальной виртуальной машиной, такой как qemu / kvm или virtualbox. Внутри виртуальной машины у вас будет root-доступ, и вы сможете комфортно запускать каждое приложение от имени другого пользователя.

Вы даже можете запустить каждое приложение на отдельной облегченной виртуальной машине (VServer, вероятно, наиболее подходит для этого). Проект OLPC (один ноутбук на ребенка) попробовал его и нашел удовлетворительную производительность, но позже отказался от идеи, я не знаю почему (возможно, обмен данными между приложениями был слишком громоздким?).

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