Linux里面su和sudo区别是什么?
1、定义上:
su为switch user,即切换用户的简写。su是最简单的身份切换名,用su我们能够进行不论什么用户的切换,一般都是su - username,然后输入password就ok了,可是root用su切换到其它身份的时候是不须要输入password的。
sudo是一种权限管理机制e79fa5e98193e4b893e5b19e31333366306434,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令。
2、格式上:
su格式为两种:su -l USERNAME(-l为login,即登陆的简写)、su USERNAME。
sudo格式:sudo -u USERNAME COMMAND。
3、默认情况下:
su默认情况下如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命令即为:su -root或su -,su root 或su。
sudo默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。
4、密码上:
两个命令的最大区别是:sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。
5、日志记录上:
尽管 sudo 命令是以目标用户(默认情况下是 root 用户)的身份执行命令,但是它们会使用 sudoer所配置的用户名来记录是谁执行命令。而 su 命令是无法直接跟踪记录用户切换到 root 用户之后执行了什么操作。
6、灵活性
sudo 命令比 su 命令灵活很多,因为甚至可以限制 sudo 用户可以访问哪些命令。换句话说,用户通过 sudo 命令只能访问他们工作需要的命令。而 su 命令让用户有权限做任何事情。
su命令
su是最简单的身份切换,用su我们能够进行任何用户的切换,一般都是su -
username,然后输入password就ok了,可是root用su切换到其他身份的时候是不需要输入password的。
一般我们切换身份都是切换到root,然后进行一些仅仅只有root能干的事,比如改动配置文件,比如下载安装软件。这些都是仅仅是root才有权限做的事。切换到root能够是单纯的su,或者是su
-和su - root,后面两个是一样的意思。
单纯使用su切换到root,读取变量的方式是non-login
shell,这样的方式下非常多的变量都不会改变,尤其是PATH。所以root用的非常多的命令都仅仅能用绝对路径运行。这样的方式仅仅是切换到root的切换。
而用su - 这样的方式的话,是login shell方式,它是以root身份登录然后再运行别的操作。
sudo命令
相比于su切换身份必须要用户的password,sudo仅仅是需要自己的password,就能够以其他用户的身份来运行命令。常常是以root的身份运行命令。也并不是全部人能够用sudo:
这里我要查看/etc/shadow这个文件的前三行,可是却发现看不了,提示的错误是说我当前这个用户不在sudoers这个文件,所以sudo是依赖于/etc/suders这个配置文件的。
sudo的运行有这样一个流程:
1)当用户运行sudo时,系统于/etc/sudoers文件里查找该用户是否有运行sudo的权限;
2)若用户具有可运行sudo的权限,那么让用户输入用户自己的password;
3)假设password正确。便开始进行sudo后面的命令,root运行sudo是不需要输入password的,切换到的身份与运行者身份同样的时候,也不需要输入password。
2021-10-19 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
使用sudo su -,提供当前用户的密码,也可以切换到root用户。
如果我们的Linux系统有很多用户需要使用的话,前者要求所有用户都知道root用户的密码,显然是非常危险的;后者是不需要暴露root账户密码的,用户只需要输入自己的账户密码就可以。
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。