Useful Nix

firejail

Firejail - это простая в использовании песочница, которая ограничивает среду выполнения приложений.

Пример

programs.firejail = {
  enable = true;
  wrappedBinaries = {
    librewolf = {
      executable = "${lib.getExe pkgs.librewolf}";
      profile = "${pkgs.firejail}/etc/firejail/librewolf.profile";
      extraArgs = [
        # Рекомендовано для U2F USB stick
        "--ignore=private-dev"
        # Включаем тёмную тему
        "--env=GTK_THEME=Adwaita:dark"
        # Включаем системные уведомления
        "--dbus-user.talk=org.freedesktop.Notifications"
      ];
    };
  };
};

Использование

Теперь вы можете запускать приложение как обычно, и оно будет запущено в песочнице. Помомо этого, можно запускать и приложения, не настроенные в конфиге, с помощью

$ firejail bash

Для графических приложений рекомендуется использовать профили:

$ firejail --profile=$(nix --extra-experimental-features nix-command --extra-experimental-features flakes eval -f '<nixpkgs>' --raw 'firejail')/etc/firejail/firefox.profile firefox

On this page