root 用户拥有至高无上的权利,那么我们运维人员是不是直接在root用户下处理所有问题呢?
答案是否定的,权力越大,责任越大,人是会犯错的,因此我们要在不影响我们的工作情况下,尽量限制我们的权力,以免误操作引发灾难

一 su 命令 ---账户之间的切换

普通用户切root用户或者普通用户之间的切换都需要对方输入对方账户登录密码,root用户进普通用户不需要密码验证,这也是权力的体现。
命令格式:

su username
su - username

如果不带用户名,默认root用户
不带 - 的切换是只是在自己家里调用权力,环境变量没有变化。
带 - 直接进入到对方家里,反客为主,使用权力, 当前用户环境变量初始化为对方用户环境变量 。请看下面例子

二 sudo ----获取root权利执行命令

su 命令虽然让普通用户轻松切到root用户下接管root用户的工作,但是需要root用户授权密码,我们知道普通用于不止一个,因此root密码多次下发,一旦不小心泄露,就很不安全。我们有没有不长期下发root密码的办法,还能让普通用户干活呢,当然有,sudo 就是来解决这个难题的

            sudo 用法 ----- sudo + 要执行的命令

sudo ----在自己账户下拿到root权力去干活,每干一次活需要验证当前身份,也就是要输入当前账户密码,前提是该账户已经被事先授权。sudo与su的关系我可以这样举个例子, 假如你是宰相想行使皇帝的权力,su的办法是跑到皇帝跟前索要到权力,su-的办法是篡位自己当皇帝,sudo是皇帝给你发个金牌令箭,让你行使权力。

看上面例子 ,我想借助sudo 来修改我自己test账户的密码,我输入自己密码后提示 test 账户没有在sudoers 这个文件里,意思是需要在该文件里注册备案,才能获取权力,下面我们修改配置文件,添加test账户

                        命令visudo---可以查看sudo配置文件


备注:一定要用visudo去打开文件,不要用vi,因为此文件特别重要,vi无法显示语法错误,visudo可以显示语法错误。中间括号的ALL表示授权的用户,末尾的ALL表示授权的命令
在 root ALL=(ALL) ALL下一行加一行即可,我们再次尝试修改密码,请看结果:

提示我们先输入自己账户密码,然后就可以改密码了
处于当前登录状态,该身份验证只需要一次,你再次用sudo命令就不需要输密码了
下面我举个案例,我们的需求是把Linux服务器设置成这个样子:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户。
编辑刚才的配置文件 /etc/sudoers 修改两个地方

把sudo权力的下发组 wheel 这行前面的#删掉 ,让这行代码执行,其次在文件尾行假如下面三行:


三行的意思是:第一行 给三个普通账号设置一个组别名,让权力按组下发。 第二行给/bin/su 取别名SU。第三行 免密码登录。
保存配置文件后,使用test, test1, lv 三个账户登陆Linux后,执行命令 sudo su - 切换到root账户,获取root账户的所有权利,结果如下:

那么最后一个问题,如何限制不让root直接登录呢,可以用用工具生成一个非常复杂的随即字符串密码,这样自己也记不住了,那万一要用呢,当然还有办法,用kapss保存密码工具,把密码管理起来

总结:
sudo的工作过程如下:

  • 1 当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
  • 2 确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
  • 3 若密码输入成功,则开始执行sudo后续的命令
  • 4 root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
  • 5 若欲切换的身份与执行者的身份相同,也不需要输入密码

    三 限制ssh远程登录

    /etc/ssh/sshd_config为sshd服务的皮质文件,默认root账户可以通过ssh远程登录linux。要实现不允许登录,修改配置文件即可
    在文件中查找到#PermitRootLogin yes,将yes该为no,保存退出,然后重启sshd服

                    systemctl  restart sshd.service

Linux学习总结(六)-su命令 sudo 命令 限制root远程登录的更多相关文章

  1. Linux学习(十二)mkpasswd、su、sudo、限制root远程登录

    一.mkpasswd mkpasswd用来生成随机密码字符串.可以指定长度和特殊字符的长度: [root@ruanwenwu01 ~]# mkpasswd O7.alw5Wq [root@ruanwe ...

  2. 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

    3.7 su命令 3.8 sudo命令 3.9 限制root远程登录 su命令 切换用户 [root@centos_1 ~]# su - xiaobo [root@centos_1 ~]# su - ...

  3. CentOS启用sudo,禁用root远程登录

    CentOS默认不启用sudo,且可以直接用超级管理员身份登录服务器.ubuntu这方面做得比较好,为了安全,减小误操作带来的损失,还是推荐启用sudo. 1.添加sudo用户 执行 visudo 命 ...

  4. 【linux学习笔记六】压缩 解压缩命令

    所有的压缩文件一定要写压缩格式的扩展名 .zip格式压缩 #压缩文件 zip 压缩文件名 源文件 #压缩目录 zip -r 压缩文件名 源目录 #解压缩 unzip 压缩文件 .gz格式压缩 #压缩为 ...

  5. su命令、sudo命令、限制root远程登录 使用介绍

    第3周第3次课(4月4日) 课程内容:3.7 su命令3.8 sudo命令3.9 限制root远程登录 3.7 su命令 [root@jimmylinux-002 ~]# su - jimmy     ...

  6. Linux centosVMware su命令、sudo命令、限制root远程登录

    一.su命令 Linux系统中有些事情只有root用户才能做,普通用户不能做,这时候就需要临时切换到root身份了. [root@davery ~]# whoamiroot [root@davery ...

  7. Linux学习之RPM包管理-rpm命令管理(十六)

    Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...

  8. linux系统(centos)下su和sudo命令的区别

    linux系统(centos)下su和sudo命令的区别 区别 我们在日常使用过程中,这2个命令很多时候能达到相同的效果,对细节区别十分模糊,这里进行简单的解释和区分.希望大家能够正确使用这2个命令, ...

  9. Linux学习之十四、管线命令

    Linux学习之十四.管线命令 地址:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php

  10. Linux学习之路-Linux-at及cron命令【7】---20171215

    Linux学习之路-Linux-at及cron命令[7]---20171215 DannyExia000人评论986人阅读2017-12-24 17:28:03   ntpdate 命令 [root@ ...

随机推荐

  1. group by 语句

    user E_book go 这样的程序会出错,因为play没有使用sum,所以要分组. group by play 有函数的和没有函数的表一起使用要用 GROUP BY .AVG 求平均值,只能与数 ...

  2. [编程] C语言变量和数据类型总结练习题

    练习题: 1) 如何用 printf() 输出 short.int.long 类型的整数,请举例说明. 2) 如何用 printf() 输出 float.double 类型的小数,请举例说明. 3) ...

  3. Collections自定义List排序规则

    Collections自定义List排序规则 //这里的顺序,是我自己定义的一个List<String> String[] regulation = {"jams",& ...

  4. sun.misc.unsafe

    Java中大部分错误都是基于内存管理方面的.如果想破坏,可以使用Unsafe这个类. 实例化Unsafe: 下面两种方式是不行的 private Unsafe() {} //私有构造方法 @Calle ...

  5. 结构型--代理模式(Proxy)

    一.代理模式是什么? 代理模式属于GOF23设计模式中结构型中的设计模式,通过代理对象来屏蔽(部分或者屏蔽)对真实对象的直接访问,下图为UML图: 在代理模式中组件包括:抽象角色接口.代理角色类.真实 ...

  6. 基于Maven的Spring + Spring MVC + Mybatis的环境搭建

    基于Maven的Spring + Spring MVC + Mybatis的环境搭建项目开发,先将环境先搭建起来.上次做了一个Spring + Spring MVC + Mybatis + Log4J ...

  7. CSS的伪类 :before 和 :after

    CSS 有两个说不上常用的伪类 :before 和 :after,偶尔会被人用来添加些自定义格式什么的,但是它们的功用不仅于此.前几天发现了 Creative Link Effects 这个非常有意思 ...

  8. js-js和HTML的两种结合方式

    第一种: - 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种: - 使用script标 ...

  9. Js事件监听封装(支持匿名函数)

    先看demo:http://liutian1937.github.io/demo/EventListen.html/*绑定事件与取消绑定*/ var handleHash = {}; var bind ...

  10. 项目经验:GIS<MapWinGIS>建模第一天

    随便记录下项目的进展情况: GIS平台系统,实现整个供水系统的协调与统一.系统以管网为基础依据,建立可实现供水管网规划设计.输配管理.图档管理.抢修辅助决策及综合查询.统计等功能. 本文档的预期读者是 ...