如何将 asdf 用作根用户

  • 本文关键字:用户 asdf asdf-vm
  • 更新时间 :
  • 英文 :


我需要读取一些具有权限权限的硬件数据,所以我需要使用 asdf 插件作为 root。我该怎么做?

我尝试启动根用户sudo su但我无法访问 asdf

dr: sudo -E su

问题是sudo默认情况下不会保留(大多数(环境变量。对于asdf来说,环境变量ASDF_CONFIG_FILEASDF_DATA_DIRASDF_DIR都很重要,还有通常的嫌疑人,如PATH

幸运的是,我们可以指示sudo保留所有环境变量。从man sudo

-E, --preserve-env

向安全策略指示用户希望保留其现有环境变量。 如果用户没有保留环境的权限,则安全策略可能会返回错误。


资源:

  • 来自阿南杜姆达斯的ASDF问题评论

这篇文章的现有答案为我指出了正确的方向:为了将环境变量(包括重要的PATH(带入sudo shell,需要sudo -E

但是,我仍然得到了unknown command: THECOMMAND. Perhaps you have to reshim?.对我有用的是获取要运行的命令和要运行的二进制文件的路径。

就我而言,我正在尝试使用hostile主机管理工具。它失败了,因为它找不到node。通过指定完整的node路径和hostile脚本的直接路径,我能够绕过 reshim 错误。

sudo -E `asdf which node` `asdf which hostile` load the_file.txt

类似的东西

sudo -E $(which asdf) list

或在鱼中

sudo -E (which asdf) list

asdf替换为所需的 asdf 插件,然后将命令参数放在后面,如上list

检查您的垃圾箱在哪里(例如 which iex (,就我而言

/home/<user>/.asdf/shims/

成为根,带来用户环境

sudo -Es

导出填充程序(如错误所指出的那样(

export PATH=/home/riccardo/.asdf/shims/:$PATH

你很好去:竖起大拇指:

相关内容

  • 没有找到相关文章

最新更新