Для запуска приложений с графическим интерфейсом от другого пользователя требуется разрешение на запись для /run/user/1000.
Я не хотел предоставлять доступ к некоторым конфиденциальным каталогам при запуске проприетарных программ из Snap. Это то, что я сделал до сих пор:
- Создал нового пользователя и ограничил доступ на чтение/запись к основному
/home
каталог и некоторые другие каталоги - Добавлен X-доступ к другому пользователю для приложений с графическим интерфейсом через
xhost +si:localuser:[user 2]
-
su
другому пользователю и выполните команду
К сожалению, для некоторых программ требуется доступ для записи./run/user/1000
, который принадлежит основному пользователю. Например, бегskype
из оснастки.
В чем здесь проблема? Почему новый пользователь просто не создает новыйrun/user
каталог? Я не слишком знаком с этими концепциями, поэтому буду очень признателен за подробное объяснение/исправление.
1 ответ
Кажетсяsu [user 2]
сохраняет переменные среды текущей оболочки при переключении на другого пользователя. Чтобы решить эту проблему, мне пришлось использоватьsu - [user 2]
.
Чтобы убедиться, что новая оболочка работает нормально, после шага 2 исходного сообщения необходимо выполнить некоторые дополнительные действия.
Установите соответствующие
DISPLAY
переменная окружающей среды. бегатьecho $DISPLAY
в оболочке [пользователя 1]. Установите такое же отображение для [пользователя 2]. Например, запустивexport DISPLAY=:0.0
для оболочки [пользователя 2].[необязательно] Если вы видите подобные ошибки в таких программах, как Skype:
cannot create directory '/run/user/1001': Permission denied
, а затем просто создайте этот каталог с соответствующими разрешениями и владельцем. Например, для созданияrun/user/1001
запустите эти команды (при условии, что они не существуют):
#make sure you're not overriding existing directory properties!
mkdir /run/user/1001
chown -R [user 2]:[user 2]
chmod g-rwx 1001
chmod o-rwx 1001
Спасибо комментаторам оригинального поста за помощь с этим ответом.