LINUX.ORG.RU

Практически полностью конфигурируемая пользователем система.


0

0

Навеяло http://www.linux.org.ru/view-message.jsp?msgid=2247790

Странного захотелось... А, скажите, есть ли вообще в природе дистро, который бы делал польователю полностью конфигурируемое окружение за счет per-process namespaces? Ведь, наверняка, какие-нибудь гики-экспериментаторы собрали что-нибудь, редкое, более чем нераспространенное, но интересное...

Т.е., суть вот в чем: при логине чтобы создавался новый неймспейс файловой системы (pam_mount, вроде, может), и пользователь загонялся туда. Монтировался пользовательский /etc, читался fstab и все цеплялось по указанию пользователя, как пересечение (unionfs/aufs) разных директорий. Скажем, (новый неймспейс)/bin = (старый)/bin+/usr/bin/+/home/anonymous/bin/+/mnt/my_remote_host/usr/bin/.

Это давало бы возможность иметь каждому пользователю свои собственные fstab, безопасный (а что, он в своем неймспейсе форкнутом) mount, собственный xorg.conf, собственный набор софта и т.д.. Да, можно и setxkbmap запустить (да, у разных пользователей разные раскладки, у меня так вот — dvorak и qwerty) и через xrandr покрутить и еще много всякого, но ведь когда просто есть свой xorg.conf это же куда проще и красивее.

Причем софт можно было бы раскладывать (сейчас меня будут бить за латентность) чем-то как на маке или оффтопике — в реальности ложить в /software/emacs/bin, /sofware/emacs/usr/share/emacs/ и т.д., а уже внутри пользовательской песочницы все это аккуратно бы подцеплялось в нужные места. Сказал юзер «GNU Emacs хочу», и оно оказалось в его личном /bin. Без всяких /usr/bin, /usr/local/bin, /opt/kde/3.5/bin/, километровых $PATH и прочего. И пакетным менеджерам было бы чудесно жить.

Да и конфиги можно держать не в $HOME, а, при таком-то устройстве, прямо в /etc где-нибудь. Хотя я бы и от $HOME/.configs/ не отказался вместо кучи мусора непосредственно в домашнем. Благо на этот .configs можно смонтировать специальную оптимизированную файловую систему, и параметры хранить как в /proc или /sys, кучами коротеньких файликов, в каждом из которых по одной настройке, а скорость и простоту обеспечивает уже файловая система (щаз снова будут бить за изобретение реестра).

Правда, есть ряд проблем типа как с собственным /etc/sudoers. Или нужна виртуализация как в OpenVZ или специальные проверки на права файла (sudoers не root'овского авторству? кыш, импостер!) и запрет suid'ных файлов везде, кроме одобренных root'ом разделов. Внешне выглядит как, вроде бы, решаемый вопрос, просто надо менять логику работы /sbin/mount, добавив несколько дополнительных проверок.

Что думает дорогой ЛОР? Если ли такое, и, вообще, к бобру ли оно?

In before LFS, вантузятник, макофаг, переизобретатель Plan9, велосипед, это ненужно, ересь против LSB, вирусы одобряют, стена, вещества, 128bit, пыщ-пыщ и прочего.

(Я бы в Talks пошел, но позорить логином имя Анонимуса мне запрещает идеология, а так мне нидаюд. Ну, благо, в General подходит по теме, то здесь спрошу. Если перенесете — был бы весьма за.)

anonymous

К бобру ;) Только пока сознание народа перестроится, столько времени пройдет...

У большинства root'ов локалхоста просто нет таких проблем. Нужна система с кучей пользователей, причем нормальных, "не блондинок", которые оценят красоту и изящество решения.

Да, и идеалистической точки зрения - всякие /opt/kde/3.5/bin в топку (да и с реалистической кстати тоже - решение оптимизированное исключительно под rm -rf /opt/kde/3.5). Хотя лично я за разделение /bin и /usr/bin, но исколючительно в случае отдельного раздела под /usr.

А так идея прикольная. Очень. И в плане безопасности (ой, закидают меня шапками сейчас...), и в плане гибкости.

Может такое и есть где-нибудь (plan9? Просто не знаком с ним), но вот для линукса гибкости добавить - было бы неплохо.

Свой xorg.conf - это да... Свой fstab - ну, не знаю....

Вобщем, в теории оно, может и красиво, но на практике сделать _хорошо_ будет сложно.

А тема интересная. Спасибо.

Harliff ★★★★★
()

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

kto_tama ★★★★★
()

классно

на первый взгляд -- аж закономерный шаг в развитии UNIX

anonymous
()
Ответ на: комментарий от Harliff

Хотя, как показывает практика, лучше заранее придать системе потенциал для масштабирования...

По поводу кучи юзеров я перегнул - можно ведь и просто разные сервисы на разных юзеров посажать, а-ля chroot.

Но chroot убог, так как цель его - держать и не пущать. А тут наоборот - пользователю предоставляются огромные возможности. Почти root получается.

Может кто-нибудь из присутствующих варианты применения сего подхода придумают?

Harliff ★★★★★
()

Думаю, необходимость в таком подходе еще не настала. Но это не значит, что реализуй ее кто-нибудь, народ не найдет ее применения... ;)

Найдет, и будет думать - как же мы раньше без этого жили...

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

> Может такое и есть где-нибудь (plan9? Просто не знаком с ним)

Угу, там оно такое и есть. Люто, бешено красивая система, но, увы, хардкорна и явно не для десктопа.

Классический пример оттуда:

bind("/sparc/bin", "/bin", MREPL); bind("/usr/rob/sparc/bin", "/bin", MAFTER);

Per-process namespaces, предположительно, оттуда же утащили в Linux, кстати.

> Свой xorg.conf - это да... Свой fstab - ну, не знаю....

Я в fstab храню кучу FUSE'овых файловых систем, которые цепляются в ~/mnt/, и им прописаны uid/gid явно. Т.е. только для меня. Ну и, спрашивается, что оно забыло в глобальном fstab, где оно нужно, только чтобы suid'ный mount понимал что можно монтировать без sudo? А локальных fstab'ов ведь не существует в принципе.

anonymous
()
Ответ на: комментарий от Harliff

> По поводу кучи юзеров я перегнул - можно ведь и просто разные сервисы на разных юзеров посажать, а-ля chroot.

Угу. У меня была мысль — вот почему бы тому же firefox, в целях безопасности, не взять, да и не работать от в отдельном окружении. Не надо никаких хитрых политик — создал специальный неймспейс ему, где есть нужные бинарники/либы (ro), нужный кусок $HOME (часть ro часть rw, со всякими хитрыми объединениями), ну и права на доступ к X11, и поехали. И пусть он ломается, его ломают, и как только он не сходит с ума — а ничего серьезно не попортится.

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

anonymous
()
Ответ на: комментарий от Harliff

> Найдет, и будет думать - как же мы раньше без этого жили...

без рута-то ? :-)

kto_tama ★★★★★
()

Ставь openvz, потом готовься долго махать напильником - получишь как раз это самое.

Deleted
()
Ответ на: комментарий от anonymous

А ничего интересного: завел пользователя restricted, с простым паролем (можно рассмотреть варианты с использованием открытого ключа с заходом по ssh на локальную машину), ограниченного только локальным входом (ограничивал черес /etc/access.conf и pam_access) и с урезанным использованием памяти и процессов (чтобы форкбомба не сработала). Браузер-то запустить не проблема, проблема в том, что скачанные файлы хотелось бы иметь возможность забирать из его домашнего каталога (в идеале создавать/изменять/удалять), а тут вылезла проблема с правами, точнее, я не понимаю, как манипулируют маской отдельные приложения. Долго шаманил с ACL, но в конце-концов плюнул и утешаю свою паранойю врубленным на всю мощь selinux.

Да и от кражи паролей, сохраненных в броузере, так не защитишься :-(

annoynimous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.