在加密的主目录下使用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 (具有相同的所有者权限),我没有收到错误。 有人在Ubuntuforums的论坛post中指出,这可能是因为我加密了我的/home ,因而是ecryptfs的“问题”。

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

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

您可以将ncsvc二进制文件移出主目录之外(就像使用/ opt / juniper /一样),并从〜/ .juniper_networks / network_connect / ncsvc创建一个符号链接到新位置。

我只能想到两个解决加密/家庭分区的问题。

  1. 如果您通过网站连接到VPN,请使用以下sudo firefox启动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