Firefox под отдельным пользователем - РЕШЕНО

Учитывая дырявость значительной части прикладного ПО и особенно таких пакетов как Firefox/Thunderbird, есть резон запускать его из-под отдельного пользователя с урезанными привилегиями. Это не проблема для консольных программ (есть sudo) или демонов (особенно тех, что имеют собственные параметры для uid/gid). Но в случае того же Firefox при вызове через sudo получаю такую ошибку:

(firefox-bin:7716): Gtk-WARNING **: cannot open display: :0.0

Что, в общем-то, логично: пользователь, из-под которого запускается Firefox, не имеет доступа к дисплею иксов, занятому другим пользователем (текущим, из-под которого запускались сами иксы; это не рут).

Собственно, вопрос связан с тем, есть ли способ победить процитированную выше бяку с недоступностью дисплея? Был ли у кого-нибудь опыт реализации подобных схем? (Для пущей надёжности можно пойти иным путём: принудительно ограничить привилегии приложения с помощью grsec, но, если возможно, я бы предпочёл альтернативное решение.)

:)))

учитывая дырявость FF :)
какой оконный менеджер? если кеды, то них есть такая вещь, как "запустить приложение" в меню "К".
очень похоже на "выполнить" в виндоз, вот только с большими возможностями, такими как выставить приоритет приложения и соответственно выбрать пользователя из под которого работать.
также возможно стоит проверить наличие пользователя в группе для доступа к Х серверу :) но зачем такие ухищрения?

Мнээ, а смысл?

Мнээ, а смысл? Обычный пользователь - и так с _урезанными правами_. Если есть охота дальше накручивать ограничения - ограничивайте конкретного пользователя. Данный трюк не прокатит - в случае обнаружения "дырявостей" в указанных продуктах с эскалацией привелегий никакие урезания не помогут. Или вы чего хотите?
_______________________
From Siberia with Love!

Подобная

Подобная ошибка случается иногда и при попытке запустить иксовое приложение под рутом из нерутовой сессии. Лечится настройкой иксов и правкой файла ~/.Xauthority при помощи тузлы xauth. Для рута помниццо организовывал нечто подобное, правда давно и не помню как именно. Помниццо долго курил раздел авторизация мануала по иксоргу. Пользователь, из под которого пускается файрфокс должен быть прописан там.
Вторая проблема, которую придеццо решить - организовать доступ файрфокса к вашему профилю файрфокса. Если пользователей несколько - соответсвенно нуно как нить указать какой именно профиль юзать судя по описанию firefox --help это параметр -P. Приложения, позволяющее урезать "усе у усех" одним кликом не видел. Говорят что нечто такое есть в кеде.

Quote: учитывая

Цитата:
учитывая дырявость FF :)

Ну, всё в мире относительно. ;-) Однако, вот вышла третья версия, и в первый же день сообщили о возможности исполнения произвольного кода (для протокола: я не использую FF3). А количество и потенциал 0-day вообще покрыто мраком.

Цитата:
какой оконный менеджер?

Флюксбокс.

Цитата:
но зачем такие ухищрения?

Цитата:
Мнээ, а смысл? Обычный пользователь - и так с _урезанными правами_. Если есть охота дальше накручивать ограничения - ограничивайте конкретного пользователя.

Пользователь, под которым ведётся основная работа (помимо лазания в сети), имеет доступ на чтение/запись к важным файлам. Бэкапы бэкапами, но хочется по возможности совсем обойтись без эксцессов. Считайте меня параноиком (или хорошо информированным специалистом).

Да, можно было бы пойти иным путём: ограничить основному пользователю доступ к ценным данным и завести дополнительного пользователя, которому и предоставить доступ. Но и здесь придётся идти по тем же граблям: как этот дополнительный пользователь будет работать с файлами через оконные приложения в иксах? Возвращаемся к той же проблеме, но с другой стороны. Дело здесь не конкретно в FF, проблема возникнет с любой неконсольной программой.

Проще всего, конечно, перезапускать иксы от разных пользователей. Но понятно, что это контрпродуктивно, много каши с таким подходом не сваришь.

Цитата:
Подобная ошибка случается иногда и при попытке запустить иксовое приложение под рутом из нерутовой сессии. Лечится настройкой иксов и правкой файла ~/.Xauthority при помощи тузлы xauth. Для рута помниццо организовывал нечто подобное, правда давно и не помню как именно. Помниццо долго курил раздел авторизация мануала по иксоргу. Пользователь, из под которого пускается файрфокс должен быть прописан там.

Большое спасибо за совет! Порою в этом направлении.

Цитата:
Вторая проблема, которую придеццо решить - организовать доступ файрфокса к вашему профилю файрфокса.

Это как раз не проблема. Профиль будет лежать в домашнем каталоге пользователя, из-под которого должна запускаться программа. То есть основной пользователь машины не будет иметь доступа к FF и его профилю (ибо незачем), а пользователь, из-под которого запускается FF, максимально не будет иметь доступ к остальным частям системы (ибо нефиг).

HowTo: Use x11 display from bash scripts

Премного

Премного благодарен! Это решило вопрос. Выполнение xhost +local:firefox (при условии, что программа будет запускаться из-под пользователя firefox) устранило ошибку недоступного дисплея. Ещё некоторое время недоумевал, почему даже в отсутствие ошибки FF отказывается запускаться (вообще не выдавая никаких ошибок), пока не вспомнил, что sudo не устанавливает по умолчанию домашний каталог для пользователя, от чьего имени производится выполнение. Следующий дефолт в sudoers полностью исправил проблему:

Defaults:основной_юзер always_set_home, env_keep+=DISPLAY

env_keep добавил на всякий случай, поскольку и без него всё отлично пашет.

Благодарю всех за участие.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".