当前位置: 代码网 > 服务器>服务器>Linux > Linux中root用户切换至其他用户的多种方式

Linux中root用户切换至其他用户的多种方式

2025年05月29日 Linux 我要评论
在 linux 系统中,root 用户切换至其他用户有多种方式,具体方法及注意事项如下:一、su命令(switch user)1. 基本用法su - 目标用户名示例:切换到用户johnsu - joh

在 linux 系统中,root 用户切换至其他用户有多种方式,具体方法及注意事项如下:

一、su 命令(switch user)

1. 基本用法

su - 目标用户名

示例:切换到用户 john

su - john

特点

  • - 或 -l 选项会加载目标用户的环境变量(如 ~/.bashrc)。
  • 需输入目标用户的密码(除非 root 操作,root 切换无需密码)。

2. 不加载环境变量(快速切换)

su 目标用户名

区别:仅切换用户身份,不改变当前工作目录和环境变量。

二、sudo 命令(以其他用户身份执行命令)

1. 以目标用户运行单条命令

sudo -u 目标用户名 命令

示例:以用户 john 执行 whoami

sudo -u john whoami

2. 交互式切换到目标用户

sudo -iu 目标用户名

效果:等同于 su - 目标用户名,但通过 sudo 权限切换(需配置 sudoers 文件)。

三、runuser 命令(无需密码切换)

1. 仅限 root 使用

runuser -l 目标用户名 -c '命令'  # 执行单条命令
runuser - 目标用户名            # 交互式登录

特点

  • 无需输入目标用户密码,但 仅 root 可用
  • 适用于脚本中自动化操作。

四、注意事项

  1. 密码要求

    • su 需目标用户密码(root 除外),sudo 需当前用户有 sudo 权限。
    • root 切换至任何用户均 无需密码
  2. 环境差异

    • 带 - 的切换(如 su - john)会加载目标用户的完整环境。
    • 不带 - 的切换(如 su john)保留当前环境变量。
  3. 权限控制

    • 普通用户无法直接切换至其他用户,除非通过 sudo 授权。
    • sudoers 文件配置示例(允许用户 alice 切换到 john):
alice all=(john) /bin/su
  • 安全建议

    • 避免长期使用 root 切换操作,完成任务后及时退出。
    • 推荐通过 sudo 限制权限,而非直接共享 root 密码。

五、退出切换的用户

exit   # 或按 ctrl+d

作用:返回原用户(如从 john 返回到 root)。

六、应用场景示例

1. 脚本中切换用户执行任务

#!/bin/bash
runuser -l john -c 'echo "running as $(whoami)"'

2. 管理员临时调试用户环境

su - john   # 加载 john 的环境变量
cd ~/projects
./start.sh
exit        # 返回 root

总结

命令需密码加载环境适用场景
su - 用户名是(root 除外)完全切换到目标用户环境
su 用户名是(root 除外)快速切换身份
sudo -iu 用户名当前用户 sudo 密码受控权限切换(需配置 sudo)
runuser - 用户名root 在脚本中切换用户

到此这篇关于linux中root用户切换至其他用户的多种方式的文章就介绍到这了,更多相关linux root切换其他用户内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com