LINUX.ORG.RU
решено ФорумAdmin

Как понизить права (rwx) процесса, запущенного пользователем?

 , , , ,


0

1

Я туплю над вопросом дольше обычного, т.ч. пришёл сюда. Помогите пжлст.

Дано:

  • Непривилегированный пользователь ivan, который не является администратором (не является частью групп wheel, sudo и т.п. и, соотв., не может даже использовать su).

  • Программа myprog. Никаких suid-битов и т.п. на ней нет.

Вопрос:

Как myprog запустить из-под пользователя ivan, чтобы она не имела те же права (rwx) на файлы, созданные пользователем ivan?

Условно, чтобы процесс имел права rw только на файл $XDG_CONFIG_HOME/myprogrc и директорию «$(xdg-user-dir DOCUMENTS)»

Или наоборот: чтобы все права пользователя наследовались процессом, кроме прав на условный «мои_пароли.txt»?

Другие ограничения:

Такого ПО как docker, firejail, bubblewrap не установлено и оно не может быть установлено, т.к. нет админ. прав, а администрация упорно игнорирует пользователя ivan.

Впрочем, ИМХО, как-то избыточно выглядит такой подход.

Исходников myprog нет. Как-то пропатчить её нельзя.

P.S.:

А как такое понижение прав работает в условной Windows или Plan9?

P.P.S.:

unshare от пользователя у меня, кажется, не работает

bubblewrap не установлено и оно не может быть установлено, т.к. нет админ. прав

bwrap is a unprivileged low-level sandboxing tool

/0

Сначала всё-таки попробуй собрать и запустить bwrap от имени пользователя, потом посмотрим.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)

Как myprog запустить из-под пользователя ivan, чтобы она не имела те же права (rwx) на файлы, созданные пользователем ivan?

А может, запустить её под другим пользователем (buddy), который не имеет прав на файлы пользователя ivan, а доступ к нужным файлам организовать через группы (присвоить этим файлам группу ivan-and-buddies, добавить buddy в эту группу)?

Nervous ★★★★★
()
Ответ на: комментарий от intelfx

Пришлось ставить libcap из исходников.

Не смотря на то, что при установке libcap не вышло выставить suid, meson test -C _builddir (при bubblewrap) ни на что не жаловался, что выглядит странно.

Тем не менее, вроде работает, спасибо.

mimo_croco
() автор топика
Ответ на: комментарий от intelfx

Кстати, не подскажите, как указанный мной префикс ($HOME/.local) добавить в путь, чтобы не приходилось перезаписывать C_INCLUDE_PATH, LIBRARY_PATH, PKG_CONFIG_PATH и иже с ними?

Спасибо.

mimo_croco
() автор топика