1、内容不同:
su命令:用来切换用户,substitute英文含义“代替”的意思。
sudo命令:sudo为superuser do 的简写,即使用超级用户来执行命令,一般是指root用户。
2、用法不同:
su命令:不加用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变。
sudo命令: 查看当前用户可以用sudo执行的命令都有哪些。
3、环境不同:
su命令:切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。
sudo命令:是当前用户切换到root,然后以root身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。
su的参数:
-c<指令>或--command=<指令>:执行一个指令后就恢复原来的身份;
-f或--fast:使shell不用读取启动文件,适用于csh和tcsh;
-,-l,--login:切换用户时,使环境变量(home,shell,user,logname,path等)和欲切换的用户相同、不使用则取得用户的临时权限;
-m,-p,:变更身份时,保留环境变量不变;
-s<shell>,--shell=<shell>:指定执行命令的shell;
--help:显示帮助;
--version:显示版本信息;
用户账户:指定欲切换用户,默认切换为root。
B. Linux su和sudo命令的区别,并获得root权限
su(superuser)
su表示切换用户,如: 输入:su命令后回车表示切换当前的用户到root用户,或者: 输入:su - root(或者其他用户名)这里加了"-"后表示也切换的当前的环境变量到新用户的环境变量。
su root(或者其他用户名)表示不切换环境变量到当前用户下。
sudo 表示获取临时的root权限命令,如: sudo gedit /etc/shadow,表示临时使用root权限来编辑/etc/shadow密码文件,因为/etc/shadow密码文件需要使用root权限才能打开与编辑。所以这里使用了sudo命令临时使用root权限来做一些普通账户无法完成的工作。
sudo -i表示以root身份登录,进程的实际用户ID和有效用户ID都变成了root,主目录也切换为root的主目录。
获得root权限:
1、sudo su(实质上就是su,而su默认是获得root权限)
2、su
3、su root
4、su -root
5、sudo -i
Linux su和sudo命令的区别,并获得root权限