如何以root用户身份使用asdf?

时间:2019-07-18 17:07:41

标签: asdf asdf-vm

我需要读取一些具有特权权限的硬件数据,因此我需要以root用户身份使用asdf插件。我该怎么办?

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

2 个答案:

答案 0 :(得分:1)

tl; dr:sudo -E su

问题是sudo默认情况下不保留(大多数)环境变量。对于asdf,环境变量ASDF_CONFIG_FILEASDF_DATA_DIRASDF_DIR以及常见的可疑对象(例如PATH)都很重要。

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

  

-E,--preserve-env

     

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


资源:

答案 1 :(得分:0)

帖子上的现有答案向我指出了正确的方向:sudo -E是必需的,以便将环境变量(包括重要的PATH)带到sudo外壳中。

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

就我而言,我试图使用hostile主机管理工具。失败是因为找不到node。通过指定完整的node路径和指向hostile脚本的直接路径,我可以解决重新填充错误。

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