linux sh脚本里边切换用户
时间: 2023-08-17 21:05:49 浏览: 1176
在Linux的shell脚本中,可以使用su命令来切换用户。下面是一个示例脚本:
```
#!/bin/bash
echo 'su user\[root\]!'
expect -c "
spawn su - root
expect \":\"
send \"password\r\"
interact
"
echo "ok!"
```
在这个脚本中,使用了expect命令来自动输入密码并切换到root用户。首先,使用spawn命令启动su - root命令,然后使用expect命令等待输入密码的提示符。接下来,使用send命令发送密码,注意要将password替换为实际的密码。最后,使用interact命令交互模式,以便在切换到root用户后可以执行其他命令。\[1\]
另外,还可以使用su命令的-c选项来在切换用户后执行指定的命令。下面是一个示例脚本:
```
#!/bin/bash
whoami
su - yanu <<EOF
whoami
# 在这里可以执行其他命令
EOF
whoami
```
在这个脚本中,首先使用whoami命令查看当前用户,然后使用su - yanu命令切换到yanu用户,并在EOF和EOF之间的代码块中执行其他命令。切换用户后,再次使用whoami命令查看当前用户。\[2\]
如果你想在脚本中使用expect来自动输入密码,可以参考这个链接中的示例代码:http://qyiyunso.blog.163.com/blog/static/350776862009112395940647/。其中的核心代码可以帮助你实现自动输入密码并切换用户的功能。\[3\]
#### 引用[.reference_title]
- *1* [linux shell切换用户脚本](https://blog.csdn.net/ardo_pass/article/details/80117420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [shell 脚本之切换用户](https://blog.csdn.net/Augusdi/article/details/45692391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文