我想使用自动执行登录过程sudo su
。我已经看到了很多关于这些的问题,但是没有一个对我有用。
这是我到目前为止尝试过的
echo "mypassword" | sudo -S su - user
echo "mypassword\n" | sudo -S su - user
echo mypassword | sudo -S su - user
echo "mypassword" | sudo -S su user
echo mypassword | sudo -S su user
我只是得到以下回应
-bash: line 1: mypassword: command not found
我的Bash版本
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
注意,我的密码包含特殊字符 @
@ sudo
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...
不要那样做!这将使您的密码保留在Shell的历史记录中!
如果确实需要这样做,我建议您将sudoers
文件配置为允许无密码登录。
为此,运行命令sudo visudo
并添加如下所示的一行:
reddy ALL=NOPASSWD: /bin/su - *
(reddy
您的用户名在哪里)。
如果您需要将此权限授予整个团队,请与该团队一起创建一个(UNIX)组,然后替换reddy
为%team
(“团队”组)。
(此外,还有一些话题:该echo
命令已经添加了\n
所需的内容。如果您实际上想要相反的内容(您不需要),则该命令为echo -n
。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句