本文目录导读:

在Linux/Unix系统中,快速切换用户的脚本可以通过以下几种方式实现,根据你的具体需求(交互式切换、无密码切换、批量切换等),选择合适的方法。
基本切换用户脚本
交互式切换
#!/bin/bash # 文件名: switch_user.sh read -p "请输入要切换的用户名: " username sudo su - "$username"
直接切换到指定用户(需要密码)
#!/bin/bash
# 文件名: su_to_user.sh
# 硬编码用户(不安全,仅示例)
# sudo su - username
# 从命令行参数获取用户
if [ -z "$1" ]; then
echo "用法: $0 <用户名>"
exit 1
fi
sudo su - "$1"
无密码切换(需要配置sudo)
步骤1:配置sudo权限
sudo visudo # 添加以下行(允许当前用户无密码切换到指定用户) your_username ALL=(target_user) NOPASSWD: ALL # 或允许无密码切换到任何用户(谨慎使用) your_username ALL=(ALL) NOPASSWD: ALL
步骤2:无密码切换脚本
#!/bin/bash
# 文件名: quick_su.sh
# 从命令行参数获取用户
[ -z "$1" ] && { echo "用法: $0 <用户名>"; exit 1; }
# 执行切换
sudo -u "$1" -i
批量切换用户脚本
从文件读取用户列表并切换
#!/bin/bash
# 文件名: batch_switch.sh
USER_LIST="/tmp/users.txt"
if [ ! -f "$USER_LIST" ]; then
echo "创建用户列表文件 $USER_LIST"
echo "每行一个用户名"
echo "user1" > "$USER_LIST"
echo "user2" >> "$USER_LIST"
exit 1
fi
while IFS= read -r user; do
echo "尝试切换到用户: $user"
# 切换到该用户并执行命令(这里只是测试)
sudo -u "$user" whoami 2>/dev/null && echo "成功切换到 $user" || echo "切换到 $user 失败"
done < "$USER_LIST"
使用expect自动输入密码
安装expect
# Debian/Ubuntu sudo apt-get install expect # CentOS/RHEL sudo yum install expect
expect脚本示例
#!/usr/bin/expect -f
# 文件名: auto_su.exp
set timeout 10
set username [lindex $argv 0]
set password [lindex $argv 1]
if { $username == "" || $password == "" } {
puts "用法: ./auto_su.exp <用户名> <密码>"
exit 1
}
spawn su - $username
expect "密码:"
send "$password\r"
interact
注意:在脚本中硬编码密码不安全,建议使用SSH密钥或sudo免密配置。
用runuser命令(某些系统)
#!/bin/bash
# 文件名: runuser_switch.sh
if [ -z "$1" ]; then
echo "用法: $0 <用户名>"
exit 1
fi
# 需要root权限
runuser -l "$1" -c 'echo "当前用户: $(whoami)"'
创建快捷命令
将以下脚本添加到~/.bashrc或~/.bash_profile:
# 快速切换到用户,sw user1
sw() {
if [ -z "$1" ]; then
echo "用法: sw <用户名>"
return 1
fi
sudo su - "$1"
}
# 或使用别名
alias su_to='sudo su -'
更安全的切换:使用SSH密钥
对于远程服务器,使用SSH密钥切换更安全:
#!/bin/bash # 切换到远程服务器上的特定用户 ssh -i ~/.ssh/id_rsa user@remote_host "sudo su - target_user"
使用示例
- 保存脚本:将脚本保存为
switch.sh - 添加执行权限:
chmod +x switch.sh - 运行脚本:
./switch.sh username
安全建议
- 避免硬编码密码:使用sudo免密配置或SSH密钥
- 限制sudo权限:只允许必要的用户和命令
- 审计日志:记录用户切换操作
- 使用角色分离:考虑使用RBAC(基于角色的访问控制)
选择哪种方法取决于你的具体需求:如果是临时切换,推荐使用sudo免密配置;如果需要批量管理,可以使用expect或SSH密钥;对于安全要求高的环境,建议使用集中认证系统(如LDAP、FreeIPA)。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播