sudo命令允许授权用户临时以root权限执行特定命令,需输入自身密码验证身份,执行后权限自动失效,避免长期持有高风险特权。
在Linux系统中,进入特权模式(通常指获取root
权限)是执行系统级操作的关键步骤,特权模式允许用户修改核心配置、安装软件或访问受限文件,以下是几种安全可靠的方法,适用于大多数Linux发行版(如Ubuntu、CentOS、Debian等):
适用场景:单次执行特权命令(命令提示符保持,但具备root能力)。
步骤:
- 在终端输入命令格式:
sudo <需要特权的命令>
示例:
sudo apt update # Ubuntu/Debian更新软件列表 sudo systemctl restart nginx # 重启Nginx服务
- 输入当前用户的密码(输入时无显示,完成后按回车)。
- 系统验证通过后,该命令将以
root
权限执行。
注意:
- 用户必须被添加到
sudoers
列表(通过/etc/sudoers
配置),否则会提示权限错误。 - 默认
sudo
会话有效期15分钟(期间无需重复输入密码)。
使用 su
切换到root用户(永久切换)
适用场景:需要连续执行多条特权操作(命令提示符变为)。
步骤:
- 在终端输入:
su -
- 输入root用户的密码(非当前用户密码)。
- 成功后,终端提示符变为(如
root@hostname:~#
),此时所有命令均以root权限运行。 - 退出特权模式:输入
exit
或按Ctrl+D
。
注意:
- 若系统禁止root登录(如Ubuntu默认),需先设置root密码:
sudo passwd root # 设置密码后,才能使用su -
通过 sudo -i
或 sudo su
快速进入root环境
适用场景:当前用户有sudo
权限,且需启动完整的root会话(提示符变为)。
方法:
- 推荐:
sudo -i
输入当前用户密码,直接进入root的主目录(
/root
)。 - 替代方案:
sudo su
效果类似,但环境变量可能略有差异。
直接以root用户登录(不推荐)
风险提示:此方式存在安全隐患,多数发行版默认禁用。
步骤:
- 修改配置文件允许root登录:
sudo nano /etc/ssh/sshd_config # 编辑SSH配置
将
PermitRootLogin no
改为PermitRootLogin yes
。 - 重启SSH服务:
sudo systemctl restart sshd
- 通过SSH或本地终端用root账号登录。
强烈建议:仅在必要时启用,完成后立即禁用。
安全使用原则
- 最小权限原则:优先用
sudo
执行单条命令,而非全程使用root。 - 及时退出:完成操作后立即输入
exit
退出特权模式。 - 审计日志:所有
sudo
操作会被记录到/var/log/auth.log
(便于追踪)。 - 避免滥用:误操作可能导致系统崩溃或数据丢失。
常见问题解答
- Q:输入密码时终端无显示?
A:Linux密码输入默认不显示字符(连也不显示),正常输入后回车即可。 - Q:提示 “user is not in the sudoers file”?
A:当前用户无权使用sudo,需root用户执行usermod -aG sudo <用户名>
添加权限(Ubuntu)。 - Q:忘记root密码?
A:重启系统进入Recovery模式重置(需物理访问服务器)。
引用说明: 基于Linux官方文档(kernel.org)、Ubuntu手册(help.ubuntu.com)及Red Hat系统管理指南(access.redhat.com),命令兼容性已通过Ubuntu 22.04、CentOS 7/8及Debian 11验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6348.html