linux 切换用户 su 与sudo 的 区别--- 详细说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xingyue0422/article/details/86612929

                    日常使用linux 系统中,一般为了系统安全多数都是使用普通用户登录到系统来执行命令和任务的。有时候需要执行一些高级的命令,比如创建用户或者修改系统配置文件,普通用户是不能执行的,没有执行权限。这个时候需要切换到root用户。下面简单说明一下su 和sudo 切换的使用效果的不同。

          1. su  切换 (在不加任何参数的情况下)

             默认表示切换到root用户。 输入密码后就切换到了root身份,完成需要的操作后,使用exit即可退出root用户。回到普通用户下。

          2.  su   -  参数

            su 与su - 的区别,用此图来说明。非常直观了。

       说明: su - 表示不仅切换了root 身份,还可以使用root 的用户环境。如果用su 切换后,用户环境没有变化,使用su - 用户环境变为root. 

     3. su  -  ( 可以是其他的用户)

       su - 用户名 可以切换到其他指定的用户,不过需要对应的密码才可以切换成功。注意 root 可以使用su 命令切换到任意用户,而不需要密码登陆。

       可以不需要密码,直接从root 切换到其他用户。

     4. sudo 切换用户 (sudo + 要执行的命令)

       案例:  sudo  passwd was. 执行该命令时,系统会首先检查文件/etc/sudoers中该用户是否有执行sudo 的权限。确定有执行权限后,【系统会要求输入自己的密码】,如密码正确,则会以root身份运行命令。

      5. 使用sudo 命令前需要熟悉一下 sudoers文件。防止误操作。linux 推荐使用专门的编辑工具  visudo来编辑这个文件。

         这个编辑工具的好处是在保存退出时会自动检查语法设置,防止修改错误导致无法使用sudo 命令.

        

  修改完成后保存就可以执行修改密码的操作了。首先需要输入自己的密码;

    

    6. 修改 sudoers 文件,增加的那一行说明

        

       解释说明: 表示hadoop 用户可以从任何地方登陆,执行任何人的任何命令。对应的三个ALL 的含义。

    这样就很方便了哦,可以执行root权限了。但是需要输入密码才可以,经常这样很繁琐。当然也可以不输入密码的。那就是在

    最后一个ALL 前面添加NOPASSWD。 这样就是不需要root密码可以执行root权限了。

            看此图 操作即可。

    注意: 如果实际环境这样的话比较不安全。就是最后一个也设置为ALL。这样等同于普通用户可以执行任何root用户的命令。防止误操作造成灾难。最好是根据实际情况来分配不同的权限。

          

         这样指定了不需要输入密码的只有特定的情况,其他还是需要密码才能操作的。一定程度降低了危险性。

         严格的说 sudo 不是切换到了其他用户执行,是使用其他用户的身份来执行任务和命令。

展开阅读全文

没有更多推荐了,返回首页