用sudo来执行脚本之后他安装的路径就会变成/root/app,但是不使用sudo的话又会提醒权限不足

问题解析

当你使用 sudo 来执行脚本时,脚本是以 root 用户的身份运行的。在这种情况下,环境变量 $HOME 指向 root 用户的主目录,即 /root,而不是你的个人用户主目录。这就是为什么当你使用 sudo 时,安装路径变成 /root/app 的原因。

另一方面,当你不使用 sudo 时,脚本以你的个人用户身份运行,$HOME 指向你的个人用户主目录(例如 /home/your_username)。然而,如果脚本试图访问或修改需要管理员权限的文件或目录,你会收到权限不足的错误。

为了解决这个问题,你可以:

  1. 指定一个不需要管理员权限的安装目录:你可以选择一个你的用户有写权限的目录作为安装目录,这样就不需要使用 sudo

  2. 使用 sudo,但显式设置 ZZROOT:如果你需要使用 sudo,你可以在运行脚本时显式设置 ZZROOT 变量,以指定你想要的安装目录。例如:

    sudo ZZROOT=/path/you/want ./zznasm.sh
    

    这里,/path/you/want 应该替换为你想要的安装路径。

请注意,使用 sudo 运行命令应该谨慎,因为它具有管理员权限,可以对系统文件和配置进行更改。

使用解决方式2

要使用 sudo 并显式设置 ZZROOT 以便在 yancy 用户的目录中安装,你可以在运行脚本时设置 ZZROOT 变量,并使用 -E 选项来保留环境变量。这是一个示例命令:

sudo -E ZZROOT=/home/yancy/app ./your_script.sh

这里,/home/yancy/app 是你想要的安装路径,your_script.sh 应该替换为你的脚本文件名。

-E 选项告诉 sudo 保留用户的环境变量。这是必要的,因为默认情况下,sudo 不会保留环境变量。

另外,请注意,使用 sudo 运行脚本会给脚本管理员权限,这意味着它可以对系统进行更改。因此,请务必小心,并确保你理解脚本的内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值