临时获取root权限(推荐)
使用 sudo
命令
- 原理:临时以root身份执行单条命令,普通用户需被授权(在
/etc/sudoers
中配置)。 - 操作:
sudo <命令> # sudo apt update
输入当前用户密码验证身份。
- 优点:操作可审计(记录在
/var/log/auth.log
),安全性高。 - 授权新用户:
usermod -aG sudo <用户名> # Ubuntu/Debian usermod -aG wheel <用户名> # CentOS/RHEL
切换至root环境(sudo -i
或 sudo su
)
- 启动root shell会话:
sudo -i # 保留当前用户环境变量 sudo su # 切换到root的纯净环境
- 退出:输入
exit
或Ctrl+D
。
直接登录root账户(不推荐)
启用root登录
- 设置root密码(首次需激活):
sudo passwd root # 设置密码后解锁账户
- 登录方式:
- 终端切换:
su - root
(输入root密码) - SSH登录:修改
/etc/ssh/sshd_config
中PermitRootLogin yes
→ 重启SSH服务。
- 终端切换:
- 风险:直接暴露root账户易被暴力破解,违反最小权限原则。
特殊场景:开机以root执行
修改系统服务
- 编辑systemd服务文件,添加:
[Service] User=root
开机脚本
- 在
/etc/rc.local
(需启用)中添加命令:#!/bin/bash /path/to/your/script.sh exit 0
- 赋予执行权限:
sudo chmod +x /etc/rc.local
安全准则(必读)
- 最小权限原则:
- 优先用
sudo
执行单条命令,而非长期保持root会话。
- 优先用
- 禁用root登录:
- 通过SSH时,设置
PermitRootLogin no
(修改后重启SSH:systemctl restart sshd
)。
- 通过SSH时,设置
- 审计与日志:
- 检查
/var/log/auth.log
监控sudo使用记录。
- 检查
- 使用SSH密钥替代密码:
避免密码被截获,提升安全性。
常见问题
- Q:
sudo
提示”用户不在sudoers文件中”?
→ 用su - root
切换后,执行usermod -aG sudo <用户名>
。 - Q:忘记root密码?
→ 重启进入Recovery模式 → 挂载根目录 → 用passwd root
重置。
重要提醒:生产环境中,永远不要直接以root运行未知脚本或服务,滥用root权限是系统被入侵的主要原因之一。
引用说明: 参考Linux官方文档(kernel.org)、Ubuntu安全指南(help.ubuntu.com)及《Linux Administration Handbook》最佳实践,遵循最小权限原则和审计规范。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4430.html