LINUX.ORG.RU

История изменений

Исправление Kron4ek, (текущая версия) :

bubblewrap.

И приведу простой пример:

$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

$ mkdir -p /home/user/firefox_new_home
$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Если у тебя еще всякие /mnt и /media и в них что-нибудь смонтировано, то их тоже нужно будет смонтировать в tmpfs, чтобы скрыть их содержимое от приложения.

И начинать лучше не с Firefox, а с файлового менеджера, чтобы понять что видно изнутри песочницы.

Кроме того, еще может быть необходимо смонтировать сокет Wayland (если у тебя Wayland) или сокет X и файл Xauthority (если у тебя Xorg), иначе графические приложения не запустятся.

--bind /tmp/.X11-unix /tmp/.X11-unix --bind $XAUTHORITY $XAUTHORITY

Чтобы не заморачиваться с сокетами, можно просто не перемонтировать /var, /run и /tmp в tmpfs.

Исправление Kron4ek, :

bubblewrap.

И приведу простой пример:

$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

$ mkdir -p /home/user/firefox_new_home
$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Если у тебя еще всякие /mnt и /media и в них что-нибудь смонтировано, то их тоже нужно будет смонтировать в tmpfs, чтобы скрыть их содержимое от приложения.

И начинать лучше не с Firefox, а с файлового менеджера, чтобы понять что видно изнутри песочницы.

Кроме того, еще может быть необходимо смонтировать сокет Wayland (если у тебя Wayland) или файл Xauthority (если у тебя Xorg), иначе графические приложения не запустятся.

--bind $XAUTHORITY $XAUTHORITY

Исправление Kron4ek, :

bubblewrap.

И приведу простой пример:

$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

$ mkdir -p /home/user/firefox_new_home
$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Если у тебя еще всякие /mnt и /media и в них что-нибудь смонтировано, то их тоже нужно будет смонтировать в tmpfs, чтобы скрыть их содержимое от приложения.

И начинать лучше не с Firefox, а с файлового менеджера, чтобы понять что видно изнутри песочницы.

Кроме того, еще может быть необходимо смонтировать сокет Wayland (если у тебя Wayland) или файл Xauthority (если у тебя Xorg), иначе графические приложения не запустится.

--bind $XAUTHORITY $XAUTHORITY

Исправление Kron4ek, :

bubblewrap.

И приведу простой пример:

$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

$ mkdir -p /home/user/firefox_new_home
$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Если у тебя еще всякие /mnt и /media и в них что-нибудь смонтировано, то их тоже нужно будет смонтировать в tmpfs, чтобы скрыть их содержимое от приложения.

И начинать лучше не с Firefox, а с файлового менеджера, чтобы понять что видно изнутри песочницы.

Исправление Kron4ek, :

bubblewrap.

И приведу простой пример:

$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

$ mkdir -p /home/user/firefox_new_home
$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Если у тебя еще всякие /mnt и /media и в них что-нибудь смонтировано, то их тоже нужно будет смонтировать в tmpfs, чтобы скрыть их содержимое от приложения.

Исправление Kron4ek, :

bubblewrap.

И приведу простой пример:

$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

$ mkdir -p /home/user/firefox_new_home
$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Исправление Kron4ek, :

bubblewrap.

И приведу простой пример:

bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Исходная версия Kron4ek, :