Linux用户切换与管理的完整指南

 更新时间:2025年07月01日 10:21:59   作者:独隅  
这篇文章主要介绍了Linux系统中用户切换与管理的全流程,涵盖su/sudo权限操作、SSH远程认证、会话管理工具、安全配置策略、状态监控命令及故障排查方法,重点强调了权限控制、安全加固与操作审计等核心实践,需要的朋友可以参考下

一、用户切换核心方法

1. su 基础切换

完整环境切换(加载目标用户的配置文件)
su - 目标用户名
仅切换用户身份(保留当前环境变量)
su 目标用户名

操作流程

  1. 输入命令后按回车
  2. 输入目标用户的密码
  3. 执行 exitCtrl+D 返回原用户

示例

su - root       # 切换到root并加载环境
su developer    # 切换用户但保留当前Shell环境

2. sudo 权限提升

以目标用户身份执行单条命令
sudo -u 目标用户名 命令
进入交互式root Shell
sudo -i

配置要求

当前用户必须在 /etc/sudoers 文件中被授权

典型场景

sudo -u www-data cat /var/log/nginx.log  # 以Web用户查看日志
sudo -i                                  # 获得完整root环境

二、远程用户切换

1. SSH 直接登录

ssh 目标用户名@服务器IP

密钥认证配置

ssh-copy-id 目标用户名@服务器IP  # 部署公钥
ssh -i ~/.ssh/private_key.pem 目标用户名@服务器IP

2. 多跳服务器切换

ssh -J 跳板机用户@跳板机IP 目标用户@目标服务器IP

三、会话管理技巧

1. 终端复用(tmux)

tmux new -s dev_session  # 创建新会话
Ctrl+B → C               # 新建窗口
Ctrl+B → 数字键          # 窗口切换

2. 后台任务管理

保持会话持续运行
nohup 命令 &
disown -h %1            # 脱离终端关联

查看所有用户进程
ps -ef | grep 用户名

四、安全增强配置

1. sudoers 文件配置

visudo
添加内容:
用户名 ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt  # 免密执行特定命令
%groupname ALL=(ALL) ALL                      # 组权限配置

2. SSH 安全加固

/etc/ssh/sshd_config 修改:
PermitRootLogin no            # 禁止root直接登录
PasswordAuthentication no     # 强制密钥认证
AllowUsers 白名单用户         # 用户访问控制

五、状态监控命令

1. 实时会话查看

命令功能输出示例
w显示登录用户及活动09:30:45 up 20 days, user load average
who -u带空闲时间显示dev_user pts/0 2024-05-07 09:30 (192.168.1.100)

2. 历史登录审计

last -n 5 用户名  # 查看最近5次登录记录
lastlog           # 所有用户最后登录时间

六、故障排查指南

1. 切换失败诊断流程

  1. 检查用户是否存在:
    getent passwd 用户名
  2. 验证密码是否正确:
    sudo passwd -S 用户名
  3. 确认sudo权限:
    sudo -l -U 用户名

2. 紧急恢复方法

单用户模式恢复(物理服务器)
1. 重启系统并在GRUB菜单选择"recovery mode"
2. 选择 "root Drop to root shell prompt"
3. 执行 `passwd 用户名` 重置密码

最佳实践建议

  1. 生产环境优先使用 sudo 代替直接 su root
  2. 定期执行 sudo -k 清除授权缓存
  3. 敏感操作前通过 echo $USER 确认当前用户身份
  4. 重要会话使用 script 命令记录完整操作日志:
script -a /var/log/admin_operations.log

到此这篇关于Linux用户切换与管理的完整指南的文章就介绍到这了,更多相关Linux用户切换与管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ubuntu下用dpkg命令行运行deb安装包的方法

    ubuntu下用dpkg命令行运行deb安装包的方法

    在Ubuntu系统中,除了通过桌面启动deb安装包外,还能通过命令行来运行deb安装包,需要使用到dpkg命令,下面这篇文中就给大家介绍下Ubuntu下使用dpkg命令运行deb安装包的方法,需要的朋友可以参考借鉴,一起来学习下吧。
    2017-01-01
  • Linux系统下部署项目的设置方法

    Linux系统下部署项目的设置方法

    这篇文章主要介绍了Linux系统下部署项目的教程详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • shell脚本报错:

    shell脚本报错:"[: =: unary operator expected"解决办法

    这篇文章主要介绍了shell脚本报错:"[: =: unary operator expected"解决办法的相关资料,需要的朋友可以参考下
    2017-03-03
  • socket unix domain IPC的实例代码

    socket unix domain IPC的实例代码

    下面小编就为大家带来一篇socket unix domain IPC的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 在Apache服务器中运行CGI程序的方法

    在Apache服务器中运行CGI程序的方法

    这篇文章主要介绍了在Apache服务器中运行CGI程序的方法,文中以Perl脚本作为示例,需要的朋友可以参考下
    2015-07-07
  • Windows10安装Apache2.4的方法步骤

    Windows10安装Apache2.4的方法步骤

    本文主要介绍了Windows10安装Apache2.4的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-06-06
  • Linux清理系统缓存与无用文件的几种方式

    Linux清理系统缓存与无用文件的几种方式

    在当今高负载、高并发的服务器环境中,Linux系统的稳定性和性能表现至关重要,而随着时间推移,系统会积累大量缓存数据和临时文件,这些数字垃圾不仅占用宝贵的磁盘空间,因此本文将深入探讨Linux环境下如何有效清理系统缓存与无用文件,需要的朋友可以参考下
    2026-03-03
  • linux环境下实现固定串口设备号

    linux环境下实现固定串口设备号

    简要说明:通过修改rifd.rules中的设备ID规则,为RFID串口创建符号链接,使用lsusb和udevadm命令定位设备,若ID冲突则需进一步区分,编程时需采用新设备名确保稳定性
    2025-09-09
  • 清除指定squid缓存文件的脚本代码分享

    清除指定squid缓存文件的脚本代码分享

    Squid web缓存加速软件目前已经是新浪、搜狐、网易等各大网站广泛应用。Squid会在设置的缓存目录下建立多个目录,每一个目录下又建立多个目录,然后才在最里层的目录中存放缓存文件(object)
    2012-02-02
  • 详细分析Linux文件系统

    详细分析Linux文件系统

    本片文章通过存储机制,结构等方便对Linux文件系统做了详细分析和解读,一起学习参考下吧。
    2017-12-12

最新评论