Легкая ориентированная на конфиденциальность операционная система настольной системы на основе Devuan и LXC. Проект самообразования, и еще одна попытка сделать альтернативу ОС Qubes. Это еще не дистрибутив и, вероятно, никогда не будет. Это набор файлов и исправлений, простой скрипт makecex и инструкция по LFS.
Работа в процессе.
На данный момент эта система отражает мой опыт и полна личных предпочтений. Некоторые из них довольно необоснованные. Клянусь, я избаюсь от них, как только количество пользователей выйдет за пределы 1,5. Но в общем, обоснование заключается в следующем:
Способный носитель с живой системой может быть создан с помощью MakeCex. Вам понадобится PPA, который можно создать с помощью сценариев подготовки и построения.
На данный момент только устаревший режим загрузки поддерживается для AMD64.
Сценарий содержит параметры в начале, внимательно пересматривайте их перед запуском. Вы можете написать модифицированные параметры на makecex.conf вместо того, чтобы вносить изменения в сценарий.
Секция проектов/песочницы.
С тех пор, как LXCEX перешел на Mounts, разрешения на файлы стали более важными. С uidmapshift все данные контейнера были недоступны от непривилегированного пользователя в базовой системе. Это больше не относится к идентификационным креплениям, потому что непривилегированные пользователи в базовой системе и контейнерах имеют общие идентификаторы.
Убедитесь, что все подкатарии в /var/lib/lxc имеют минимальные разрешения и не читаются, по other мере. То же самое относится и к данным контейнера, хранящимися в другом месте.
Тем не менее, для работы идентификаторов, минимальные разрешения должны включать в себя обход каталогов для других. Это может быть проработано с использованием setfacl , но это избыточное вес в удобстве.
Если все вышеперечисленное является проблемой безопасности, не используйте идентификационные крепления.
/dev/ptmx через некоторое время.sh если Weston запускается Runit, где родительская оболочка sh .lxcex , позвольте пользователю настраивать это?uidmapshift на данный момент. В качестве замены для ls -l /var/lib/lxc , который показал идентификаторы uidmapshift ED, контейнеры, теперь существует сценарий lxcex-idmap , который показывает подчиненные идентификаторы пользователей для каждого контейнера, который использует IDMAP.Хорошо, брось здесь линию. Я все еще кажется единственным пользователем всего этого дерьма, и, как говорят мои африканские друзья: «Даз хорошо!»
Множество функций разыскиваются. Номер один - избавиться от Рунита. Номер два - UI UTILS. Все остальные желают - это просто мелочи.
Все идет нормально. Новая глава 8 вышла.
Три месяца с момента создания, и теперь я могу сказать, что прощай, Linuxmint. LXCEX с этого момента находится на всех моих ноутбуках.
Основные обновления:
Еще одна веха: MakeCex отсутствует! Этот скрипт генерирует загрузочный носитель. Не чрезмерно проверенный, это работает только для меня.
Packages Repo вышел. На данный момент единственный пакет есть UIDMAPSHIFT. Планируйте добавить исправленную версию Libpulse, таким образом, избавление от File Lixer.
Хотя смерть от смеха не является моей конечной целью, я должен был добавить для меня ключ подписания, анонимный.
Автоматизация уже в пути. Началось после того, как мне удалось сбить систему, просто сняв/var/lib/lxc с работающими контейнерами. Не понял, что это так опасно. Это действие уничтожило все установленные перегородки, включая резервную USB -палку, которая не имела к этому никакого отношения. Почему???
Он играет музыку! Первоначальная версия главы 6 вышла, чтобы быть обновленной.
Среда настольных компьютеров XFCE работает!
Тег: 0,0,2
Первоначальный коммит и выпуск.
Вы можете задаться вопросом, как выпустить apt upgrade для дюжины контейнеров, включая базовую систему. Вот для чего предназначен скрипт Dist-Uplegrade. Он основан на lxcex-chroot, который выполняет арбитражную команду, правильно, чтобы получить корневики контейнера.
Они застали в соответствии с соответствующими репозиториями, поэтому стоит следовать их инструкциям
На момент написания, Firefox (версия 123) использует Wayland по умолчанию. Если вы помните, Wayland_display сбросится в /HOME/USER/.config/sv/xfce4/run, и это заставляет Firefox войти в бесконечный цикл, говорящий
Warning: ConnectToCompositor() try again : Connection refused
Есть два варианта:
Я попробовал оба. Первоначально я выбрал последний, используя сценарий:
#!/bin/sh
if [ -n "$X_WAYLAND_DISPLAY" ] ; then
export WAYLAND_DISPLAY=$X_WAYLAND_DISPLAY
else
# fallback
export WAYLAND_DISPLAY=wayland-1
fi
firefox
Тем не менее, это делает Copy Paste-ведущим, поэтому я сейчас вернулся в X-режим.
Мои первоначальные настройки были странными и хрупкими просто из -за отсутствия понимания общих подтежников.
Вот решение:
Сделайте немного рекурсивно. Вы не можете сделать произвольный каталог в файловой системе Rshared (это была моя точка недопонимания), это должна быть фактическая точка монтирования, то есть каталог, где установлена некоторая файловая система.
Я хочу использовать /mnt/autofs для автофировки, поэтому давайте установим там TMPFS и RSHARE IT:
mkdir -p /mnt/autofs
mount -t tmpfs -o size=64K --make-rshared tmpfs /mnt/autofs
mkdir /mnt/autofs/myserver
Создать конфигурацию Autofs:
mkdir /etc/auto.maps
echo "/mnt/autofs/myserver /etc/auto.maps/myserver" >/etc/auto.master.d/myserver.autofs
echo "shared-dir myserver.example.com:/var/share/top-secret" >/etc/auto.maps/myserver
и перезапустить автоф.
Добавьте следующую строку в конфигурацию контейнера:
lxc.mount.entry = /mnt/autofs mnt/autofs none create=dir,rbind 0 0
Начните контейнер. Внутри, ls /mnt/myserver/shared-dir должен работать, как и ожидалось.
Тем не менее, пользователь: группа будет никто: Nogroup и я понятия не имеем, как настроить правильное отображение идентификатора.
menulibre выглядит довольно раздуточным и в настоящее время полностью сломана в Excalibur. Тем не менее, довольно легко редактировать меню вручную:
.config/menus/xfce-applications.menu.local/share/applicationsКонтейнеры отлично подходят для изоляции рабочих пространств, как если бы они работали на отдельных машинах. Это значительно упрощает такие вещи, как сеть, которые слишком подвержены ошибкам или невозможно поддерживать в одной системе.
Но на уровне контейнеров все остается неизменным: одному домашнему каталогу, где все приложения имеют полный доступ к данным пользователя.
Это опасно. Потенциально, каждая программа, которая использует сеть, может утечь ваши конфиденциальные данные, даже непредвиденные.
По сути, все программы, которые работают с вашими данными, должны выполняться в контейнере с инвалидами, и, вероятно, в конечном итоге я получу такую договоренность.
Но сейчас у меня есть несколько устаревших сред, каждая из которых работает в своем собственном контейнере. Временное решение, которое я развернул в этих контейнерах, является ограниченным сетевым доступом к сети для основного пользователя и запускаю все сетевые программные обеспечения в качестве разных пользователей. Это программное обеспечение включает в себя браузеры Firefox, Chromium, Mullvad и Tor, а также Thunderbird. Конечно, некоторые уже поддерживают Уэйленд, но у LXCEX все еще есть проблемы с копией, и это фактор блокировки для их национального.
Вот установка, на примере Firefox, который можно использовать в качестве шаблона для других программ.
Во -первых, создайте отдельного пользователя:
useradd -g users --skel /etc/skel --shell /bin/bash --create-home firefox
Затем переместите каталоги:
mkdir /home/firefox/.cache
mv /home/user/.mozilla /home/firefox/
mv /home/user/.cache/firefox /home/firefox/.cache/
chown -R firefox /home/firefox
Далее подготовьте сценарий /usr/local/bin/start-firefox :
#!/bin/sh
USER=firefox
if [ -z "$1" ] ; then
xhost +SI:localuser:$USER
exec sudo $0 dosu
elif [ "$1" = "dosu" ] ; then
exec su -l -c "$0 run" $USER
elif [ "$1" = "run" ] ; then
cd /home/$USER
. /usr/local/share/lxcex-xdg.sh
export DISPAY=:0.0
exec firefox --display=:0.0
fi
На самом деле, переменная среды DISPLAY здесь не требуется, но этот скрипт можно использовать в качестве шаблона для запуска других приложений, поэтому я намеренно оставил его.
Наконец, Create /etc/sudoers.d/50-start-firefox (увы, требуется sudo):
user ALL = NOPASSWD: /usr/local/bin/start-firefox dosu
Вам может потребоваться изменять запись меню XFCE. И чтобы добавить опцию -p в первый раз, в противном случае Firefox может начать с пустого профиля.
Это хорошая идея, чтобы поделиться каталогом Downloads . Предыдущий подход был групповым каталогом с символическими ссылками, но лучшим способом является lxces-share .
Пусть Downloads Direcroty будут в домашнем каталоге user , как и раньше. Затем создайте следующий sharetab для контейнера:
/var/lib/lxc/<container-name>/rootfs/home/user/Downloads firefox /home/firefox/Downloads
И используйте крючки в конфигурации контейнера, как показано в главе 8:
lxc.hook.pre-start = /usr/local/bin/lxcex-share
lxc.hook.mount = /usr/local/bin/lxcex-share
lxc.hook.start = /usr/local/bin/lxcex-share
lxc.hook.post-stop = /usr/local/bin/lxcex-share
Обнаружил эту статью, когда написал главу 6: https://discuss.linuxcontainers.org/t/audio-via-pulseaudio-inside-container/8768 они используют LXD, и стоит взглянуть на прокси в реализации OD Socket. Можем ли мы использовать их для сохранения розетки контейнера и воссоединиться с гнездом хоста, когда базовый композитор перезагружается? Или когда контейнер возобновляется из спячки?
Снова,
Я не понял, почему мне пришлось
mount --make-shared /run т.е. /run , а не /run/user , если я сделал mount --rbind /run/user "${LXC_ROOTFS_MOUNT}/run/host/run/user" в контейнерах и хотел, чтобы все подразделения UID распространяли.
После того, как он перечитывал, что несколько раз это должно быть ясно, в конце концов.
smartd является наиболее надежным инструментом для отключения Spindowns HDD до сих пор:
/etc/default/smartmontools : smartd_opts="--interval=10 --attributelog=- --savestate=-"
--interval , другие отключают состояние сбережений, которое мне никогда не нужно.-n never находится в etc/smartd.conf , т.е. DEVICESCAN -d removable -n never -m root -M exec /usr/share/smartmontools/smartd-runner
Мои дополнительные пакеты, только для записи.
gnome-font-viewer , выглядит ненужноgthumbbreeze-icon-theme .systemsettings : установлен на всякий случай, нулевая прибыль до сих пор.libnss3 , libasound2