Установка Max под Linux в изолированной песочнице с помощью Firejail.
Firejail
Основные цели:
- ограничить доступ к $HOME;
- изолировать сеть и устройства;
- скрыть системную информацию;
- минимизировать права (capabilities) приложения.
0. Установка
sudo apt install -y firejail
Выполняйте следующие шаги от обычного пользователя.
1. Скачивание и распаковка
mkdir /tmp/max
cd /tmp/max
FILENAME=$(wget -qO- https://download.max.ru/linux/deb/dists/stable/main/binary-amd64/Packages.gz | gzip -d | awk '/Filename/ {print $2;exit}')
wget https://download.max.ru/linux/deb/${FILENAME} -O max.deb
7z x max.deb
tar xf data.tar
2. Размещение файлов
mv usr/share/max/ ~/
mv usr/share/icons/* ~/.local/share/icons/
sed "s#Exec=.*#Exec=firejail --profile=Max /home/$USER/max/bin/max %U#" usr/share/applications/max.desktop > ~/.local/share/applications/max.desktop
3. Настройка профиля
При необходимости измените сетевой интерфейс (в примере docker0).
mkdir -p ~/.config/firejail/ /home/$USER/Downloads/Max /home/$USER/.local/share/ONEME
FIREJAIL_INT=docker0
FIREJAIL_IP=172.17.0.212
FIREJAIL_GW=172.17.0.1
cat <<EOF > ~/.config/firejail/Max.profile
whitelist /home/$USER/max/
whitelist /home/$USER/.local/share/ONEME
whitelist /home/$USER/Downloads/Max
tmpfs /home/$USER/.local/share/ONEME/logs
whitelist /home/$USER/.themes
whitelist /home/$USER/.config/gtk*
whitelist /home/$USER/.local/share/fonts
whitelist \${RUNUSER}
private-tmp
private-dev
private-cache
private-bin /bin/bwrap
private-lib yes
private-etc ssl,ca-certificates,fonts
blacklist /var
blacklist /usr/src
blacklist /opt
# network
net $FIREJAIL_INT
ip $FIREJAIL_IP
netmask 255.255.255.0
defaultgw $FIREJAIL_GW
mac 1c:1a:df:f7:13:35
dns 77.88.8.8
dns 77.88.8.1
hostname $HOSTNAME
nosound # закомментируйте для включения звука
novideo
caps.drop all
machine-id
disable-mnt
EOF
4. Запуск
firejail --profile=Max /home/$USER/max/bin/max
5. Регистрация происходит в мобильном приложении, на десктопе логин по QR-коду.
6. Исправление проблем со звонками
Если звонки не работают из-за несовместимости библиотек, можно отключить max-service:
chmod -x ~/max/bin/max-service/bin/max-service
Либо заменить конфликтующие библиотеки системными:
mv ~/max/bin/max-service/lib64/libselinux.so.1 ~/max/bin/max-service/lib64/libselinux.so.1.custom
mv ~/max/bin/max-service/lib64/libmount.so.1 ~/max/bin/max-service/lib64/libmount.so.1.custom
mv ~/max/bin/max-service/lib64/libsystemd.so.0 ~/max/bin/max-service/lib64/libsystemd.so.0.custom
Docker
Вариант запуска в Docker (требует проброса X11, так как Wayland может не поддерживаться):
docker run --name max -it -v /home/$USER/Max:/home/$USER/Max -u 1000 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -h $HOSTNAME -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY -e LANG="ru_RU.UTF-8" -e DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS -v $XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR -v $HOME/.Xauthority:/home/$USER/.Xauthority ubuntu:24.04 bash
Установка зависимостей в контейнере:
apt update && apt install -y libglx0 libopengl0 libxkbcommon0 libglib2.0-0 libgl1 libpulse0 libgssapi-krb5-2 libegl1 libfontconfig1 libnss3 libxcomposite1 libxdamage1 libxfixes3 libxrender1 libxrandr2 libxtst6 libxi6 libasound2t64 libxkbfile1 libnotify4 locales libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xfixes0 libxcb-xinerama0 libxkbcommon-x11-0 libpipewire-0.3-0 x11-utils libsecret-1-0 libgcrypt20 libsecret-1-dev
echo -e "ru_RU.UTF-8 UTF-8\nen_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
Chrome с отдельным профилем
Самый простой способ: использование веб-версии в изолированном профиле Chrome.
/bin/google-chrome --user-data-dir="$HOME/chrome-max-profile" --app="https://web.max.ru/"
Создание ярлыка:
cat <<EOF > ~/.local/share/applications/max.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=MAX
Exec=/bin/google-chrome --user-data-dir=$HOME/chrome-max-profile --app=https://web.max.ru/
Icon=$HOME/.local/share/icons/hicolor/128x128/apps/max.png
Terminal=false
Categories=Network;
EOF
Скачивание иконки:
wget https://clsv.ru/uploads/120/43730bb543fbddd328737f4b59ac9f915fa9549e.png -O $HOME/.local/share/icons/hicolor/128x128/apps/max.png
В заметке могут быть неточности :-)
Комментарии ()