如何创建自动输入密码的脚本?

如何创建自动输入密码的脚本?

我正在创建一个脚本。我希望此脚本执行下一个任务:以 root 用户身份登录。 (我正在尝试使用一行)如何创建自动输入密码的脚本?

#echo "Hello Admin"
#su root@admin

在此输入图像描述

在此输入图像描述

我只想执行 bash 脚本而不输入密码。为什么它要求我输入密码?

答案1

这是不可能的!不适用于该命令,但您可以使用 创建 sudo 用户ALL ALL: NO Password,在线搜索如何创建 sudo 用户以sudo在没有密码的情况下运行命令。

答案2

如果您的目标是su没有密码,我建议使用sudo su.允许用户su在没有密码的/etc/sudoers情况下使用

[username] ALL=(ALL) NOPASSWD: /bin/su

或者

[username] ALL=(ALL) NOPASSWD: ALL

因为用户已经可以通过 root 访问权限做任何他/她想做的事情。与从脚本传递明文密码相比,其优点是root密码不会泄露。请记住,删除脚本后密码可能是可读的。

编辑:下面的解决方案毕竟不起作用,su将其stdin视为命令并在执行后退出。echo 'passwd'|sudo -S [command]适用于大多数命令,但su如果您使用它,请注意,如果没有要求stdin密码,则仍然有密码,因为时间戳仍然是新鲜的。sudo您可以使用sudo -kfirst 来强制查询密码。sudo -k && echo 'passwd'|sudo -S [cmd]。不过,更好地使用NOPASSWD/etc/sudoers.

NOPASSWD:编辑:此外,您还可以使用sudo -S读取sudo密码stdin并使用类似 的内容,而不是使用echo [password]|sudo -S susudo获取用户密码并需要运行权限/bin/suALL如上所述。与所有sudo命令一样,预期的密码是用户的密码,而不是root'

相关内容