1. SHELL脚本切换用户需输入密码
先确认一下su
-c
能否解决问题,语法
su
-
-c
以指定用户执行命令
[root@fw98
/]#
whoami
root
[root@fw98
/]#
su
-
mao
-c
whoami
mao
不能满足需求的话,可以用expect,我的环境上没有expect,不能帮你试了,大致是下面的感觉,详细你网络查一下
#!/usr/bin/expect
su
-
mao
#你要执行的命令
expect
"Password:"
#执行后终端回显的交互信息
send
"admin_123\r"
#当终端出现上面的交互详细后,模拟键盘输入的内容
#此例,执行su
-
mao
切换mao用户,终端提示输入密码后,模拟键盘输入mao用户的密码
2. linux下切换用户命令
su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。如果当前是root用户,那么切换成普通用户test用以下命令。
su-test如果要切换回root用户,那么用以下命令。
su或su-用户名root可以省略不写。
切换回root用户时要输入root密码。一般直接输入exit命令来切换回root用户,这样就不用输入密码。
3. linux 用户退出怎么命令
用户退出登录的方法有以下三种:
1、在shell提示符下输入 exit 按回车确认
2、在shell提示符下输入 logout 按回车确认
3、按快捷键crtl+d (此方法同logout效果)
Linux常用命令之——退出、切换用户exit、su
exit命令同于退出shell,并返回给定值,在shell脚本中可以终止当前脚本执行,执行exit可使shell以指定的状态值退出。
若不设置状态值参数,则shell以预设值退出,状态值0代表执行成功,其他值代表执行失败。
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
选项:
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。
4. SHELL 脚本如何实现切换用户
目前用的最多的是用Except
步骤如下:
安装Except
代码:
#!/usr/bin/envexcept
settimeout30
setuser"USERA"
setmsg"messageinterminal"
setpasswd"yourpassword"
spawnsu$user
expect_before$msg{
send"$passwd "}
interact
注意,msg变量里写你手动切换user时屏幕提示输入密码的信息, passwd就是你切换的那个用户的密码。
5. shell 如何在切换用户后执行后面的语句
这个得用 sudo 命令。他在切换用户后,执行完指定命令后自动切回原用户。
echo start
sudo -u user ./some.sh
#执行多个命令把命令写进脚本里。
echo end
注意采纳。