【问题标题】:How to add user input automatically in alias in zshrc?如何在 zshrc 的别名中自动添加用户输入?
【发布时间】:2021-08-31 07:00:58
【问题描述】:

是否可以在添加别名并且命令需要输入时自动添加用户输入?

例如:

我正在添加一个别名以自动打开根提示符

alias rooter="sudo -i"

然后它要求用户输入密码,所以如果有任何可能的方法,即使使用function,我也会尝试将其自动化,但我不知道如何强制别名 调用时运行函数

【问题讨论】:

  • alias rooter="sudo -i " ?
  • 您到底想自动化什么?如果您尝试自动输入密码,请不要;它非常不安全。
  • 使用 sudoers 设置无密码登录。永远不要在 shell 配置中以纯文本形式存储密码。
  • @kalalua : 为什么这个标签是 bash?问题中没有与 bash 相关的内容。你专门问.zshrc,所以一定是zsh。
  • 大家好,感谢您的关注和建议。在担任了这么长时间的安全分析师之后,我非常确定自己在做什么。就像@KamilCuk 我试过 /etc/sudoers 但是我找不到任何方法来添加这个特定的命令 sudo -i 也没有 /usr/bin/su 工作,我仍然得到密码提示

标签: linux zshrc


【解决方案1】:

假设命令接受标准输入作为输入,您可以简单地通过管道输入或使用<<<,例如

alias foo="bar <<<Howdy" 

对于sudo,您需要首先确保sudo 从标准输入读取:

alias rooter='sudo -S -i <<<DONT_MEMORIZE_ME_I_AM_THE_ROOT_PASSWORD'

当然,谁愿意将他的根密码以纯文本形式写入文件? .......

【讨论】:

  • 否 @user1934428 我试过这个,但它不起作用。还有什么建议吗???
  • here-string后面的密码当作不同的命令处理
  • 这不是这里的字符串。您使用的是哪个 zsh(即 echo $ZSH_VERSION 说什么?)?
  • 在使用sudo 进行测试之前,将sudo -S -i 替换为简单的cat,它应该将字符串输出到标准输出。如果这也不起作用,那么您的 zsh 有问题,我们必须解决这个问题。如果cat 有效,但sudo -Si 无效,则您的sudo 版本有问题。无论如何,请暂时省略别名,因为我们需要先修复命令本身。
猜你喜欢
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 2019-08-07
  • 2021-06-06
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多