无法运行 bash 脚本 Cisco Anyconnect。“抱歉,您需要用户权限才能运行此脚本。”以 root 身份执行时

无法运行 bash 脚本 Cisco Anyconnect。“抱歉,您需要用户权限才能运行此脚本。”以 root 身份执行时

为了工作,我需要安装 Cisco Anyconnect,但由于权限问题,我无法安装它。我已经设置好了一切,我认为是正确的。我正在关注此指令

在步骤 8(执行 bash 脚本)之后,我不断收到错误消息“抱歉,您需要超级用户权限才能运行此脚本”。

脚本应该可以访问 /opt/

我为解决这个问题做了什么:

  • 我按照说明操作,当然使用了 sudo
  • 以 root 用户身份运行脚本 (su -c 等)
  • 编辑/opt/文件夹的权限 chmod 755
  • 将脚本和 /opt/ 的所有者更改为我的用户帐户(然后恢复,没有修复)
  • 创建了一个新的文件夹 /opt2/ 并编辑脚本以使用该文件夹

有人可以帮我解决这个问题吗?


编辑:我正在使用 Ubuntu 22.04.3 LTS


剧本版权

  • 文件:vpn_install.sh
  • 所有者:用户名
  • 组:根
  • 用户::rwx
  • 组::rwx
  • 其他::rwx

/opt/ 权利

  • 文件:选择/
  • 所有者:root
  • 组:根
  • 用户::rwx
  • 组::rwx
  • 其他::rwx

终端输出:

username@user-NUC10i7FNK:~/Documents/anyconnect/anyconnect-linux64-4.10.07073-predeploy-k9/anyconnect-linux64-4.10.07073/vpn$ sudo ./vpn_install.sh

Installing Cisco AnyConnect Secure Mobility Client...
Sorry, you need super user privileges to run this script.
Exiting now.

编辑:

  • 我的用户 ID:1000
  • ID 根:0

在文本编辑器中打开脚本

# Make sure we are root
if [ `id | sed -e 's/(.*//'` != "uid=0" ]; then
  echo "Sorry, you need super user privileges to run this script."
  exitInstallation 1

终端 sudo id

UID=0(root) GID=0(root) groups=0(root)

附加信息:我已将脚本更改为以 UID 1000 运行

新的错误信息:

mv: can not move '/tmp/anyconnect-linux64-4.10.07073-core-vpn-webdeploy-k9-11321613022024.log' to'/opt/cisco/anyconnect/./anyconnect-linux64-4.10.07073-core-vpn-webdeploy-k9-11321613022024.log': access denied

答案1

/usr/bin/id您的 shell 中的命令存在一个奇怪的问题/bin/sh。也许您安装了其他东西,它会产生不同的大写“UID”输出,这与需要默认小写“uid”Ubuntu 版本的脚本不兼容。让我们通过删除检查来解决这个问题:

  1. vpn_install.sh在文本编辑器中打开脚本
  2. Ctrl+F表示“抱歉,您需要超级用户权限”
  3. 选择封闭if [...] fi块。
  4. 删除或注释掉
  5. 确保使用以下命令运行脚本以sudo避免出现第二个mv权限错误,因为不会有任何内容警告你

相关内容