以 sudo 身份运行命令时,如何从 .bash_profile 自动填写我的密码?

njb*_*oot 3 osx bash permissions sudo shell-script

我知道我可以sudo mypassword在 my 中放入类似的东西.bash_profile,但我不想以 root 身份运行每个命令。

我希望在以下情况下自动填充密码:

  • 仅需要 root 权限的命令
  • 只有我明确声明我计划运行 su 到 root 的命令 sudo

例子:

sudo cd /var/root           #When I type this
Password:                   #I don't want to be prompted for my password
                            #I want to fill it from my `.bash_profile`
Run Code Online (Sandbox Code Playgroud)

但:

cd /var/root                              #When I type this
-bash: cd: /var/root: Permission denied   #I still want this, or the like, returned
Run Code Online (Sandbox Code Playgroud)

在增加 sudo timeout 上看到了这篇文章,但我认为这并不完全相同。例如,我希望它跨越不同的 shell 登录会话。我可能是错的。

关于添加什么(或不添加!).bash_profile或哪种方法 ( timeout vs profile) 更可取的任何建议将不胜感激!先感谢您。

slm*_*slm 9

如果您不想每次都对密码进行质询,那么我建议将其设置为NOPASSWD在您的/etc/sudoers文件中,而不是在您的登录名中硬编码您的密码。至少这样您的主登录密码将保持不变,不会完全暴露在您的.bashrc.

要进行此更改,请运行命令sudo visudo,并将您的用户帐户条目更改为如下所示:

userX        ALL=(ALL)       NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

  • @mikeserv 我从来没有想过,谢谢。所以我应该`#`我的`export $EDITOR` var。当我继续时从我的`.bash_profile`(我使用Textmate)?顺便说一句,感谢大家提供所有这些有用的信息和帮助。 (2认同)