354 字
2 分钟
在 Archlinux 上配置 钉钉 (DingTalk) 的 Bwrap 隔离
由于近日 DingTalk 的 Flatpak 版本 不再维护, 要在 Linux 上使用文件系统隔离的 DingTalk, 须要自己配置沙盒或隔离环境
配置
配置 Pacman Hook 以自动将 DingTalk 调用脚本从 /usr/bin 移动到不可执行位置
要手动移动, 请在安装后运行
Terminal window sudo mv /usr/bin/dingtalk /usr/lib/dingtalk_raw
sudo mkdir -p /etc/pacman.d/hooks并在
/etc/pacman.d/hooks/dingtalk-isolate.hook写入
[Trigger]Operation = InstallOperation = UpgradeType = PathTarget = usr/bin/dingtalk
[Action]Description = Moving DingTalk binary to non-PATH location and ensuring isolation...When = PostTransactionExec = /usr/bin/sh -c 'if [ -L /usr/bin/dingtalk ] || [ -f /usr/bin/dingtalk ]; then mv /usr/bin/dingtalk /usr/lib/dingtalk_raw; fi'安装 Bwrap 与 DingTalk
sudo pacman -S bubblewrapyay -S dingtalk-bin配置 Bwrap 隔离脚本
创建隔离的 HOME 路径
mkdir -p ~/.var/app-custom为了保证调用 DingTalk 可以直接打开, 须要在如下路径
/usr/local/bin/dingtalk写入
#!/bin/bash
SANDBOX_HOME="$HOME/.var/app-custom/com.dingtalk.DingTalk"mkdir -p "$SANDBOX_HOME"
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
exec bwrap \ --ro-bind / / \ --dev /dev \ --proc /proc \ --tmpfs /tmp \ --bind "$SANDBOX_HOME" "$HOME" \ --bind "$HOME/Downloads" "$HOME/Downloads" \ --ro-bind "$HOME/.config/fontconfig" "$HOME/.config/fontconfig" \ --share-net \ --die-with-parent \ --setenv XDG_DOWNLOAD_DIR "$HOME/Downloads" \ /usr/lib/dingtalk_raw "$@"要挂载自定义路径, 请在最后一个
--bind=后一行添加Terminal window --bind <host-path/主机路径> <container-path/沙盒路径> \或者使用
--ro-bind以只读挂载
并赋予可执行权限
sudo chmod +x /usr/local/bin/dingtalkSee Also
在 Tmpfs 自动创建目录
例如, 要创建 /tmp/swap4flat 目录, 并修改权限为 a:b 的 770, 可以在如下路径
/etc/tmpfiles.d/flatpak-swap.conf写入
# 类型 / 路径 / 模式 / 用户 / 组 / 年龄 / 参数d /tmp/swap4flat 0770 a b - -然后加载该配置
sudo systemd-tmpfiles --create /etc/tmpfiles.d/flatpak-swap.conf 在 Archlinux 上配置 钉钉 (DingTalk) 的 Bwrap 隔离