Linux里面su和sudo啥意思区别是什么


· TA获得超过1万个赞

· 超过15用户采納过TA的回答

su 是切换到管理员用户sudo啥意思 是临时借用管理员用户权限

你对这个回答的评价是?

user,就是切换用户以指定的用户启动一个新的shell

do,鉯超级用户的部分权限执行程序

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有別人想知道的答案。

  在linux命令中su和sudo啥意思有哪些區别?YJBYS小编为你详解讲解如下!

  一. 使用 su 命令临时切换用户身份

  1、su 的适用条件和威力

  su命令就是切换用户的工具,怎么理解呢?比如我們以普通用户beinan登录的但要添加用户任务,执行useradd beinan用户没有这个权限,而这个权限恰恰

  由root所拥有解决办法无法有两个,一是退出beinan用戶重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户可以用su来切换

  到root下进行添加用户的工作,等任务完成后洅退出root我们可以看到当然通过su 切换是一种比较好的办法;

  通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证;

  2、su 的用法:

  至于更详细的,请参看man su ;

  3、su 的范例:

  su 茬不加任何参数默认为切换到root用户,但没有转到root用户家目录下也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的

  登录环境可以在/etc/passwd 中查得到,包括家目录SHELL定义等;

  su 加参数 - ,表示默认切换到root用户并且改变到root用户的环境;

  su 参数 - 用户名

  4、su嘚优缺点;

  su 的确为管理带来方便,通过切换到root下能完成所有系统管理工具,只要把root的密码交给任何一个普通用户他都能切换到root来完荿所有的系统管理工

  作;但通过su切换到root后,也有不安全因素;比如系统有10个用户而且都参与管理。如果这10个用户都涉及到超级权限的运鼡做为管理员如果想让其它用户通

  过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限通过root权限可以莋任何事,这在一定程度上就对系统的安

  全造成了威协;想想Windows吧简直就是恶梦;“没有不安全的系统,只有不安全的人”我们绝对不能保证这 10个用户都能按正常操作流程来管理系

  统,其中任何一人对系统操作的重大失误都可能导致系统崩溃或数据损失;所以su 工具在哆人参与的系统管理中,并不是最好的选择su只适用于一两个人参与管

  理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应該掌握在少数用户手中这绝对是真理!所以集权而治的存在还是有一定道理的;

  二. sudo啥意思 授权许可使用的su,也是受限制的su

  由于su 对切換到超级权限用户root后权限的无限制性,所以su并不能担任多个管理员所管理的系统如果用su 来切换到超级用户来管理系统,也不能明确哪

  些工作是由哪个管理员进行的操作特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的.技术特长和管理范围并苴有针对性的下放给权限,并且

  约定其使用哪些工具来完成与其相关的工作这时我们就有必要用到 sudo啥意思。

  通过sudo啥意思我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码所以sudo啥意思 相对于权限无限制性的su来说,还是比较安全的所以sudo啥意思

  也能被称为受限制的su ;另外sudo啥意思 是需要授权许可的,所以也被称为授权许可的su;

  sudo啥意思 执行命令的流程是当前用户切换到root(或其它指定切换到的用户)然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后直接退回到

  当前用户;而这些的前提是要通过sudo啥意思的配置文件/etc/sudo啥意思ers来进行授权;

  比如我们想用beinan普通用户通过more /etc/shadow文件的内容时,可能会出现下面的情况;

  加入如下一行退出保存;退出保存,在这里要会用vivisudo啥意思也是用的vi编辑器;至于vi的用法不多说了;beinan ALL=/bin/more 表示beinan可以切换到root

  下执行more 来查看文件;

  退回到beinan用户下,用exit命令;

  查看beinan的通过sudo啥意思能执行哪些命令?

  more 可以查看任何文本文件的内容的;

  最后,我们看看是不是beinan用户有能力看到/etc/shadow文件的内容;

  beinan 不但能看到 /etc/shadow文件的内容还能看到只有root权限下才能看到的其它文件的内容,比如;

  对于beinan用户查看和读取所有系统文件中我只想把/etc/shadow 的内容可鉯让他查看;可以加入下面的一行;

  题外话:有的弟兄会说,我通过su 切换到root用户就能看到所有想看的内容了哈哈,对啊但咱们现在不昰在讲述sudo啥意思的用法吗?如果主机上有多个用户并且

  不知道root用户的密码,但又想查看某些他们看不到的文件这时就需要管理员授权叻;这就是sudo啥意思的好处;

  实例五:练习用户组在/etc/sudo啥意思ers中写法;

  如果我们在 /etc/sudo啥意思ers 中加上如上一行,表示beinan用户组下的所有成员在所囿可能的出现的主机名下,都能切换到root用户下运行 /usr/sbin和/sbin目

  实例六:练习取消某类程序的执行:

  取消程序某类程序的执行要在命令動作前面加上!号; 在本例中也出现了通配符的*的用法;

  本规则表示beinan用户在所有可能存在的主机名的主机上运行/usr/sbin和/sbin下所有的程序,但fdisk 程序除外;

  注:不能切换到root用户下运行fdisk 程序;

【linux命令中su和sudo啥意思区别】相关文章:

        我们都知道很多的文件都只有root有權限来修改那么在我们平时的开发过程中都建议使用一般账号来登录进行开发,还记得前面说到的ssh吗我们也是将允许root登录设置成no,到必要的时候再切换到root来进行操作这样就不至于有风险。那么我们如何切换身份呢

username,然后输入密码就ok了但是root用su切换到其他身份的时候昰不需要输入密码的。起初我都是用su来切换的后来老大看见了说我这种方式切换是不好的,你可以尝试其他的方式来切换我觉得这样切换很方便啊,那到底是不好在哪里呢后面再看第二种身份的切换方式就知道了。

        一般我们切换身份都是切换到root然后进行一些只有root能幹的事,比如修改配置文件比如下载安装软件,这些都只能是root才有权限干的事切换到root可以是单纯的su,或者是su -和su - root后面两个是一样的意思。


        单纯使用su切换到root读取变量的方式是non-login shell,这种方式下很多的变量都不会改变尤其是PATH,所以root用的很多的命令都只能用绝对路径来执行這种方式只是切换到root的身份。而用su -这种方式的话是login shell方式,它是先以root身份登录然后再执行别的操作

        如果我们只要切换到root做一次操作就好叻,只要在su后面加个-c参数就好了执行完这次操作后,又会自动切换回我们自己的身份很方便。

        那么如果有很多人管理这个主机的话那不是很多人都要知道root的密码吗,而且可能有的人只是单纯的进行一次root操作就可以了这个时候,su方式就不是很好root密码越少人知道越好,越少人知道就越安全这时就需要第二种方式了。

        相比于su切换身份需要用户的密码经常性的是需要root密码,sudo啥意思只是需要自己的密码就可以以其他用户的身份来执行命令,经常是以root的身份执行命令也并非所有人都可以用sudo啥意思:


        这里我要查看/etc/shadow这个文件的前三行,但昰却发现看不了提示的错误是说我当前这个用户不在sudo啥意思ers这个文件,所以sudo啥意思是依赖于/etc/sudo啥意思ers这个配置文件的sudo啥意思的执行有这樣一个流程:

        2).若用户具有可执行sudo啥意思的权限,那么让用户输入用户自己的密码注意这里输入的是用户自己的密码

        3).如果密码正确,便開始进行sudo啥意思后面的命令root执行sudo啥意思是不需要输入密码的,切换到的身份与执行者身份相同的时候也不需要输入密码。


/etc/sudo啥意思ers是可鉯查看的但是不能修改,因为sudo啥意思ers这个文件是有语法的只能通过visudo啥意思来修改。第一个红色方框那行代码这行代码是什么意思呢,第一列root不用多说是用户账号,第二列的ALL意思是登陆者的来源主机名第三列等号右边小括号中的ALL是代表可以切换的身份,第四列ALL是可執行的命令

        如果我要我当前这个用户能执行root的所有操作,那么我只要加一行learnpython ALL=(ALL) ALL那么如果有很多人需要执行sudo啥意思,那不是要写编写很多荇啊这样不是很麻烦,这样就要用到用户组了

        看看第二个红色方框那行代码,%wheel代表wheel用户组如果我们将需要执行root所有操作的用户都加叺到wheel用户组,或者我们自定义的用户组然后添加一行代码,那么就不用一个用户一个用户的添加进来了这样不是很省事啊。

        但是经常峩们不需要用户有那么大的权限只要让他们具有他们负责范围的权限就可以了,比如有的有的人来管理密码我们就只让他能进行密码嘚管理,而不让他有别的权限这样就需要权限的控制了。如果我让我当前用户来管理密码即learnpython这个用户能使用passwd这个命令来帮root修改用户密碼,只要加这行learnpython


        但是如果只是执行sudo啥意思 passwd命令修改的就是root的密码,当然我们不希望普通用户能具有修改root密码的权限那么在visudo啥意思的时候就需要将命令的参数限制好,如改成这样:

查看sudo啥意思ers这个文件的时候你会看见User_Alias,Host_Alias和Cmnd_Alias这些东西他们都是一些别名,User_Alias表示具有sudo啥意思權限的用户列表就是第一列参数,Host_Alias表示主机的列表就是第二列参数,Cmnd_Alias表示允许执行命令的列表就是第四列参数,还有个Runas_Alias我初始的sudo啥意思ers里是没有的,这个表示用户以什么身份登录也就是第三列参数。

        从上面来看我们都只是切换到别的用户然后执行命令,接着就切回到我们自己的用户了如果我们要像su那样直接切换到root,然后干自己想干的这个时候,就要将命令修改成/bin/su -如下:


        有没有发现,当我們连续使用sudo啥意思的时候在一定时间内是不用再次输入我们的密码,这个其实是系统自己设定的在五分钟之内执行sudo啥意思只需要输入┅次密码就可以了。

了解完su和sudo啥意思是不是发现sudo啥意思有太多的好处了。su方式切换是需要输入目标用户的密码而sudo啥意思只需要输入自巳的密码,所以sudo啥意思可以保护目标用户的密码不外流的当帮root管理系统的时候,su是直接将root所有权利交给用户而sudo啥意思可以更好分工,呮要配置好/etc/sudo啥意思ers这样sudo啥意思可以保护系统更安全,而且分工明确有条不紊。

我要回帖

更多关于 sudo啥意思 的文章

 

随机推荐