在加密主目录下使用 root setuid 运行二进制文件时出错

在加密主目录下使用 root setuid 运行二进制文件时出错

我正在使用 Juniper 安全访问协议表单的 VPN 脚本这里~/.juniper_networks/network_connect/ncsvc,它将执行位于以下权限下的二进制文件:

-rws--s--x 1 root root 1225424 okt.  25 13:54 ncsvc

但当我这样做时,出现以下错误:

ncsvc> Failed to setuid to root. Error 1: Operation not permitted

将文件夹移动/复制~/.juniper_networks到例如/opt/juniper(具有相同的所有者权限),我没有收到错误。在论坛主题中Ubuntu论坛有人指出,这可能是因为我已经加密了我的/home,因此 ecryptfs 出现了“问题”。

我怎样才能解决这个问题?

答案1

设置 eCryptfs 挂载时使用 nosuid 挂载选项。这样做是出于安全原因,以防止特权升级攻击。

您可以将 ncsvc 二进制文件移出您的主目录(就像您对 /opt/juniper/ 所做的那样)并从 ~/.juniper_networks/network_connect/ncsvc 创建到新位置的符号链接。

答案2

对于加密的 /home 分区,我只能想到两种解决方法。

  1. 如果您通过网站连接到 VPN,请使用以下命令启动 Firefox:sudo firefox因为您的 /root 可能未加密。网络连接启动后,您可以关闭浏览器并让客户端在后台运行。

  2. 这是之前提到的。基本上让客户端在加密分区之外运行:

    rm ~/.juniper_networks
    sudo mkdir /opt/.juniper_networks
    ln -s /opt/.juniper_networks ~/.juniper_networks
    sudo chown yourusername:yourgroupname /opt/.juniper_networks
    

完成上述操作后,启动并继续安装网络连接。这次将安装在/opt/.juniper_networks

相关内容