如何将 vscode 服务器添加到所有用户的 fapolicyd 允许列表中?

问题描述 投票:0回答:1

我们需要在 Linux 服务器上使用 fapolicyd。这可以防止从我们的主目录运行代码。我们不想让整个主目录免受 fapolicyd 的影响,但我很难找到一种灵活的方法来只允许 vscode 和一些扩展。

我尝试使用共享只读 vscode-server 目录来限制范围,但每个用户都需要写访问权限,这并不比免除整个主目录更好。

我无法在 fapolicyd 规则中使用 glob,因此无法添加 /home//.vscode-server/code- (等)。

我们有很多潜在用户,而且这个数字波动很大,所以我真的不想枚举 /home/user1/...、/home/user2/... 等

有更好的解决方案吗?

visual-studio-code rhel vscode-remote
1个回答
0
投票

出于完全相同的原因,我发现 fapolicyd 中缺乏 glob 或 regexp 支持也令人沮丧。我已经成功如下。第一部分相当干净,但第二部分有点乱。我很想知道其他人是否提出了更优雅的解决方案

  1. 启用下载的可执行文件运行。我将以下规则添加到 06-custom_allow.rules (其中 $gituserid 是开发人员的用户 ID):

    allow_audit perm=执行 gid=$gituserid exe=/usr/bin/bash : ftype=application/x-executable dir=~/.vscode-server/

  2. 启用 VS Code Server 运行。这比较困难,因为每当更新扩展时都会创建一个全新的目录和文件集。为了解决这个问题,我每次由于扩展更新而停止工作时都会运行以下脚本

# /usr/bin/bash
if [[ -z $1 ]]
then
    echo 'Specify the user to enable with VS Code Server'
    exit
fi
echo "Enabling $1 for VS Code Server.  This script must be run with SUDO permissions to be effective"
# Clean up previous trust
rm /etc/fapolicyd/trust.d/vscode-server
# Establish trust on updated vscode-server
fapolicyd-cli --file add "/home/$1/.vscode-server/bin/"  --trust-file vscode-server
fapolicyd-cli --update
systemctl restart fapolicyd

您可能需要时不时地清理 .vscode-server/bin 目录,否则它会积累不同的版本并使 vscode-server 信任文件变长

© www.soinside.com 2019 - 2024. All rights reserved.