bareass_mullvad/bareass.sh
2026-02-18 22:02:21 +00:00

118 lines
3.4 KiB
Bash

#!/bin/bash
set -euo pipefail
if [ "$#" -gt 0 ] && [ "$1" == 'list' ]; then
ip -o link show | while IFS=: read -r _ name _; do
echo "${name}"
done
exit 0
elif [ "$#" -gt 0 ] && [ "$1" == 'kill' ]; then
shift
for interface in "$@"; do
device=$(busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager GetDeviceByIpIface s "$interface" | awk '{gsub(/"/,""); print $NF}')
echo $device
busctl call org.freedesktop.NetworkManager "$device" org.freedesktop.NetworkManager.Device Delete
done
elif [ "$#" -gt 0 ] && [ "$1" == 'bwrap-kill' ]; then
shift
for interface in "$@"; do
device=$(bwrap \
\
--ro-bind-try /usr/bin /usr/bin \
--symlink /usr/bin /bin \
--ro-bind-try /usr/lib /usr/lib \
--symlink /usr/lib /lib \
--ro-bind-try /usr/lib64 /usr/lib64 \
--symlink /usr/lib64 /lib64 \
--ro-bind-try /usr/sbin /usr/sbin \
--symlink /usr/sbin /sbin \
\
--ro-bind /etc/alternatives /etc/alternatives \
$(find /run -mindepth 1 -maxdepth 1 ! -path /run/dbus -printf '--bind %p %p ' 2>/dev/null) \
--dev /dev \
--dev-bind-try /dev/dri /dev/dri \
--proc /proc \
--ro-bind /sys /sys \
--ro-bind /var /var \
\
--ro-bind /home /home \
\
busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager GetDeviceByIpIface s "$interface" | awk '{gsub(/"/,""); print $NF}')
echo $device
bwrap \
\
--ro-bind-try /usr/bin /usr/bin \
--symlink /usr/bin /bin \
--ro-bind-try /usr/lib /usr/lib \
--symlink /usr/lib /lib \
--ro-bind-try /usr/lib64 /usr/lib64 \
--symlink /usr/lib64 /lib64 \
--ro-bind-try /usr/sbin /usr/sbin \
--symlink /usr/sbin /sbin \
\
--ro-bind /etc/alternatives /etc/alternatives \
$(find /run -mindepth 1 -maxdepth 1 ! -path /run/dbus -printf '--bind %p %p ' 2>/dev/null) \
--dev /dev \
--dev-bind-try /dev/dri /dev/dri \
--proc /proc \
--ro-bind /sys /sys \
--ro-bind /var /var \
\
--ro-bind /home /home \
\
busctl call org.freedesktop.NetworkManager "$device" org.freedesktop.NetworkManager.Device Delete
done
elif [ "$#" -gt 0 ] && [ "$1" == 'kill-mullvad' ]; then
pkill mullvad-gui; mullvad lockdown-mode set off && mullvad disconnect
exit 0
elif [ "$#" -gt 0 ] && [ "$1" == 'bwrap-kill-mullvad' ]; then
bwrap \
\
--ro-bind-try /usr/bin /usr/bin \
--symlink /usr/bin /bin \
--ro-bind-try /usr/lib /usr/lib \
--symlink /usr/lib /lib \
--ro-bind-try /usr/lib64 /usr/lib64 \
--symlink /usr/lib64 /lib64 \
--ro-bind-try /usr/sbin /usr/sbin \
--symlink /usr/sbin /sbin \
\
--ro-bind /etc/alternatives /etc/alternatives \
$(find /run -mindepth 1 -maxdepth 1 ! -path /run/dbus -printf '--bind %p %p ' 2>/dev/null) \
--dev /dev \
--dev-bind-try /dev/dri /dev/dri \
--proc /proc \
--ro-bind /sys /sys \
--ro-bind /var /var \
\
--ro-bind /home /home \
\
pkill mullvad-gui; mullvad lockdown-mode set off && mullvad disconnect
exit 0
else
echo 'Unknown action. Supported actions: "list", "kill [i ...]", "bwrap-kill [i ...]", "kill-mullvad", "bwrap-kill-mullvad".'
fi