Linux 不输入密码获取 root 权限
· 阅读需 2 分钟
修改 sudoers 文件以免密码执行 sudo(推荐)
可以通过修改 sudoers
文件为特定用户配置无密码 sudo
权限
使用 visudo
命令安全编辑 sudoers
文件
sudo visudo
在文件中添加或修改以下行,替换 your_username
为实际的用户名
your_username ALL=(ALL) NOPASSWD: ALL
保存并退出编辑器。
这样配置后,用户在执行 sudo
命令时无需输入密码,例如使用 sudo su
可以直接切换到 root
用户。
设置 root 用户的自动登录
对于部分 Linux 发行版,可以设置在启动时自动登录 root
用户
对于使用 SysVinit 的系统,编辑 /etc/inittab
文件
打开 /etc/inittab
,找到以下行
1:2345:respawn:/sbin/getty 38400 tty1
修改为
1:2345:respawn:/sbin/getty --autologin root 38400 tty1
对于使用 systemd
的系统,修改 getty
服务配置
创建覆盖文件
sudo mkdir -p /etc/systemd/system/getty@tty1.service.d/
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf
添加以下内容
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM
刷新 systemd
配置并重启服务
sudo systemctl daemon-reload
sudo systemctl restart getty@tty1.service
禁用 root 用户密码
不建议此方法,但也可以通过删除 root
用户的密码实现无密码登录
使用以下命令删除 root
用户密码
sudo passwd -d root
使用 ssh 公钥认证
通过配置 ssh
允许使用公钥进行身份验证,从而无需密码直接登录到 root
用户
确保 ssh
服务的配置文件 /etc/ssh/sshd_config
中启用了公钥认证
PubkeyAuthentication yes
在 root
用户的home
目录下,将用户的公钥添加到 ~/.ssh/authorized_keys
文件中。
确保客户端的私钥安全,且不被未授权用户访问。