美文网首页
三周三次课

三周三次课

作者: 艾特梁老师 | 来源:发表于2017-08-17 00:25 被阅读0次

su切换用户

  • 命令su
    语法:su [-] username
     加“-”的作用是,加上后切换,shell会初始化当前用户的各种变量(.bash_history .bash_profile .bash_logout .bashrc 等);且切换后会直接进入当前用户家目录。不加则环境变量还会是当前shell的变量,切换后还是当前目录。
     root用户切换普通用户时,不需要密码。普通用户su 不加username就是切换root用户,需要输入root密码。
     我们可以在切换时,直接以某一普通用户的身份去执行一条命令,用在脚本中比较合适。
[root@t1 ~]# su - -c "touch /tmp/zyb.log" zyb
[zyb@t1 ~]$ ls -l /tmp/zyb.log 
-rw-rw-r--. 1 zyb zyb 0 8月  16 21:05 /tmp/zyb.log
[zyb@t1 ~]$ su - bird -c "touch /tmp/bird.log"y
密码:
[zyb@t1 ~]$ exit
登出
[root@t1 ~]# ls -l /tmp/bird.log 
-rw-rw-r--. 1 bird bird 0 8月  16 21:26 /tmp/bird.log
#切换用户名可以在“-” 后面也可以在最后

sudo详解

为了保证root密码的安全,同时准许某些用户执行一些root才能执行的命令,但是不需要知道root密码,就是sudo命令的作用。
 默认情况下,只有root才能sudo,因为sudo的配置中有一行"root ALL=(ALL)  ALL "。该配置分为三部分,最左侧是用户名,指定某个用户可以拥有sudo执行权,第二部分ALL,是一个用户名,即,指定的用户可以切换到哪个用户的身份,ALL表示所有用户。小括号里面指定主机名或者主机IP,ALL表示所有,最后一个ALL,用来指定可以使用的命令有哪些。如果是多个命令,用英文逗号隔开,命令使用绝对路径。使用命令"visudo"编辑sudo的配置文件/etc/sudoers。

  1. 举例,配置sudo,使zyb用户能够以root用户什么ls /root/下面的文件。
[root@t1 ~]# su - zyb
上一次登录:三 8月 16 23:00:31 CST 2017pts/0 上
[zyb@t1 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[zyb@t1 ~]$ exit
登出
[root@t1 ~]# visudo  
#添加 zyb     ALL=(ALL)       /usr/bin/ls
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
zyb     ALL=(ALL)       /usr/bin/ls
[zyb@t1 ~]$ sudo ls /root

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for zyb: 
anaconda-ks.cfg  anaconda-ks.cfg.1.bak  linux_note  y.pub
[zyb@t1 ~]$ sudo ls /root
anaconda-ks.cfg  anaconda-ks.cfg.1.bak  linux_note  y.pub

zyb用户是不能查看/root下的文件,需要以root身份执行ls。所以配置sudo:
zyb ALL=(ALL) /usr/bin/ls
准许zyb使用sudo 以root身份执行ls,zyb第一次执行sudo会有提示,并且需要输入密码,注意是zyb用户的登录密码。再次执行sudo就没有提示。

  1. 设定不需要输入密码执行sudo
    配置sudo,准许bird用户执sudo且不需要密码
[root@t1 ~]# visudo  
#添加 bird     ALL=(ALL)       NOPASSWD: /usr/bin/ls
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
zyb     ALL=(ALL)       /usr/bin/ls
bird     ALL=(ALL)       NOPASSWD: /usr/bin/ls
[bird@t1 ~]$ sudo ls /root
anaconda-ks.cfg  anaconda-ks.cfg.1.bak  linux_note  y.pub

/etc/sudoers包含很多配置,可以使用命令man sudoers来获取帮助,下面介绍案例,来了解sudo的常用功能。

  1. 要求设置系统只允许普通用户登录,普通用户登陆后,可以不输入密码就能sudo切换到root账户。
User_Alias ALLUSERS = zyb, bird, user1, user2  
#用户别名ALLUSERS虚拟用户包含了4个真实用户 #
Cmnd_Alias SU = /bin/su  
#命令别名 SU代表了/bin/su,可以代表多个用“, ”隔开
ALLUSERS    ALL=(ALL)    NOPASSWD: SU  
#用户ALLUSERS 可以免密码sudo执行SU命令#  

命令别名,以及用户别名都必须是大写的。以上ALLUSERS,SU如果有小写字母,保存时就会报错,并提醒错误位置。使用visudo编辑sudo配置和自动检查语法,如果直接vi /etc/sudoers,不会检查语法, 所以使用visudo命令来编辑sudo配置。

  1. %groupname ALL=(ALL) ALL
    为每一个需要sudo的用户逐个添加太麻烦,可以直接为某一组用户开通sudo权限,组名前面加%。
%groupname ALL=(ALL)   ALL

groupname这组用户都具有了sudo权限,接下来只需要让将用户加入到这个group中就行了。

  1. sudo -l 查看当前用户可以sudo的命令
  2. 取消某类程序的执行:
    取消程序某类程序的执行,要在命令动作前面加上!号; 在本例中也出现了通配符的*的用法;
beinan ALL=(ALL)  /usr/sbin/*, /sbin/*, !/usr/sbin/fdisk 

把这行规则加入到/etc/sudoers中,本规则表示beinan用户在所有可能存在的主机名的主机上运行/usr/sbin和/sbin下所有的程序,但fdisk 程序除外。

不允许远程用户登录root

此方法只适用于通过ssh远程登录linux的时候,修改配置文件/etc/ssd/ssd_config,在文件中查找"#PermitRootLogin yes" 这句话,将yes改为no。就表示不允许远程root用户登录。保存配置文件,重启sshd服务:service sshd restart

相关文章

  • 红梅学书法实录(三)

    第三次书法课(20190922)

  • 在寓教于乐中学习之创客

    这节课是五月份的最后一次课,谷岳老师已经进行了三次课的分享,三次课九个活动,最后一次课信息量特别大,长达一个半...

  • 067+白大淘+第三次作业

    韩老白私房课第三次作业

  • 相信相信的力量84

    儿子正在书桌前上网课,这节课是口语,我听到他很努力很认真的和老师在讲,本周日是第三次课,细想这三次他的变化和转变非...

  • 普通话学习

    时间过的好快,普通话学习已经上三次课。 三天一次课, 3月8日晚上五点上第三次课,第一节课教声母韵母,作业是每天读...

  • 《道德经》学习(第75等六章)本周总结

    本周六次课,前三次课为天下篇的第75章“民之饥”、第72章“民不畏威”和74章“民不畏死”,后三次课为为道篇第62...

  • 第三次参加网课

    第三次参加网课 昨天晚上,是我第三次参加网课,是一堂语文课,感觉还可以。因为我阅读、写作水平比较差,所以我平时最惧...

  • 布艺手作斜挎包

    布艺手缝,是2021年学到的新技能。上学期末最后两次课是做斜挎包。原计划是安排三次课,考虑到每周一次课,三次才做完...

  • 7.17日剑桥英语班课堂反馈

    班名:四年级剑桥英语班 课次:第十三次课 课堂表现

  • 这辈子最幸福的事--遇上坚持星球

    一,第三次相见 这是继去年杭州一阶课,今年年初北京一阶课复训,第三次来到一阶课,这次地点是在南京,也是南京首秀。在...

网友评论

      本文标题:三周三次课

      本文链接:https://www.haomeiwen.com/subject/egjwrxtx.html