sudo -i命令在Linux中用于以交互式shell的方式切换到root用户,与sudo命令的其它用法相比,sudo -i会启动一个新的shell会话,并模拟root用户的环境。
作用:
sudo -i会打开一个新的shell会话,类似于用户直接以root用户身份登录系统。执行此命令后,系统会启动一个shell并以root用户的权限运行。
在新的shell会话中,$PATH和其他环境变量会被设置为root用户的值,因此执行的命令会使用root用户的环境。
示例:
命令:
sudo -i
执行该命令后,系统会要求你输入当前用户的密码,成功验证后,你会得到一个root权限的shell提示符,例如:
[patrol@patrolagent Patrol3]$ sudo -i
[sudo] password for patrol:
[root@patrolagent ~]#
此时,你可以像在root用户下那样执行任何命令。
前提(需要在/etc/sudoers文件中配置patrol用户权限):
[root@patrolagent ~]# cat /etc/sudoers |grep -i patrol
patrol ALL=(ALL) ALL
[root@patrolagent ~]#
否则会报如下错误:
[patrol@patrolagent Patrol3]$ sudo -i
[sudo] password for patrol:
patrol is not in the sudoers file. This incident will be reported.
[patrol@patrolagent Patrol3]$
或者:
使用su - root切换至root环境。
sudo与su的区别:
1.sudo:通常用于执行单个命令。例如:sudo ls,这将以root权限执行ls命令。
2.sudo -i:启动一个新的shell会话,并模拟root用户的环境,适用于需要多次执行以root身份运行的命令。
3.su:切换到另一个用户(默认是root用户)并启动新的shell会话。su需要输入目标用户的密码,而sudo则至需要输入当前用户的密码。