История изменений
Исправление Kron4ek, (текущая версия) :
И приведу простой пример:
$ 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, :
И приведу простой пример:
$ 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, :
И приведу простой пример:
$ 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, :
И приведу простой пример:
$ 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, :
И приведу простой пример:
$ 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, :
И приведу простой пример:
$ 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, :
И приведу простой пример:
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, :