viber: wrap with bubblewrap to disable $HOME access

This commit is contained in:
Asmir A 2023-11-03 00:38:02 +01:00
parent 70efe40a80
commit 3d2d8ea274
Signed by: asmir
GPG Key ID: 020C42B7A9ABA3E2

View File

@ -3,6 +3,9 @@
brotli, brotli,
cups, cups,
curl, curl,
bubblewrap,
bash,
writeShellScriptBin,
dbus, dbus,
dpkg, dpkg,
expat, expat,
@ -112,7 +115,16 @@ stdenv.mkDerivation {
xorg.libxkbfile xorg.libxkbfile
]; ];
installPhase = '' installPhase = let
viberWrap = writeShellScriptBin "viberWrap" ''
${bubblewrap}/bin/bwrap --bind / / \
--dev /dev \
--tmpfs $HOME \
--bind $HOME/.ViberPC/ $HOME/.ViberPC \
--bind $HOME/Downloads/ $HOME/Downloads \
$@
'';
in ''
dpkg-deb -x $src $out dpkg-deb -x $src $out
mkdir -p $out/bin mkdir -p $out/bin
@ -130,7 +142,10 @@ stdenv.mkDerivation {
--set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \ --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \
--set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" \ --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" \
--set QML2_IMPORT_PATH "$out/opt/viber/qml" --set QML2_IMPORT_PATH "$out/opt/viber/qml"
ln -s $out/opt/viber/Viber $out/bin/viber
echo "#!${bash}/bin/bash" > $out/bin/viber
echo "${viberWrap}/bin/viberWrap $out/opt/viber/Viber" >> $out/bin/viber
chmod +x $out/bin/viber
mv $out/usr/share $out/share mv $out/usr/share $out/share
rm -rf $out/usr rm -rf $out/usr
@ -140,7 +155,6 @@ stdenv.mkDerivation {
--replace /opt/viber/Viber $out/opt/viber/Viber \ --replace /opt/viber/Viber $out/opt/viber/Viber \
--replace /usr/share/ $out/share/ --replace /usr/share/ $out/share/
''; '';
dontStrip = true; dontStrip = true;
dontPatchELF = true; dontPatchELF = true;