第四周学习总结

写在最前

忙碌的一周又过去了,通过日夜兼程的追赶,也算基本上赶上了大部队的步伐。本周将继续对上一周的内容进行回顾加深,以达到对用户更加熟悉的管理,并讲讲三剑客中的老三。

知识详解

上一周我们说到了用户的管理,其中有像useradd、usermod、groupadd、passwd和userdel等非常重要的命令,每个用户都有自己特定的角色,在系统上完成不同的功能效用。root用户就是专门用于管理全局的超级用户,权利非常之大。除了root用户以外还有一些系统用户,他们主要是为了运行后台进程或服务类进程,系统创建出来专门运行此类进程的一类用户,并且他们不需要有登录权限。还有一类就是我们自己创建的普通用户,这类用户的权限一般都比较小,在需要更大的权限时,我们才通过root授权开放更大的权限。

Linux中,一切皆文件,因此对于用户的管理也不例外,他们在系统上也都有特定的文件用于管理用户的信息。首先是存储用户基本信息的/etc/passwd文件,首先我们来看一下它都有哪些内容:

401

通过观察,每一行都是由冒号隔开的七个字段组成,第一个字段是用户名,第二个字段是密码占位符,用户的真实密码不存放在这儿,而是由一个专门的文件存储的。第三个字段是用户ID号,第四个字段是组ID号,第五个字段是该用户的附加描述信息,第六个字段是用户的家目录位置,第七个则是用户默认的shell。对于这些信息我们可以通过命令行的方式生成,也可以直接在此文件中新增或修改得来。

用户生成后,要想用于访问或管理进程、文件,还需要有特定的权限,每个目录、文件都对三类用户分别设置了权限,对于属主有读、写、执行权限,对于属组也有读、写、执行权限,对于其他用户也设定了读、写、执行权限。并且对于文件和目录。相同的权限还代表不同的含义,对于目录来说:

  • 读权限:可使用ls命令查看目录中的文件名列表;
  • 写权限:可以在目录中创建或删除文件;
  • 执行权限则表示可以cd到此目录中,以及使用ls -l显示目录中文件的元数据信息;

但是对于文件来说,权限则代表不同的信息,

  • 读权限:可以查看文件的内容;
  • 写权限:可以修改文件的内容;
  • 执行权限:把此文件启动为一个运行的程序(进程);

因此文件想要被用户管理,还必须要有相应的权限才行。如果一个用户对文件有读权限,但是这个文件有数万行,如何才能快速的找到想要的内容呢?通过上次的讲解,我们知道有文件处理的一些工具,这里再讲解一个非常有名的工具。

Linux中有著名的三剑客,grep则被称为老三,是一个强大的文本搜索工具,通过全局查找,它的输入可以是一个文件,也可以是标准输入,将匹配到的内容输出到屏幕上,默认为将匹配到的整行输出。grep也有固定的格式:

grep [options]  pattern [file]

grep的选项主要用于调整执行查找或显示结果的方式,有如下的常用选项:

  • -E:扩展的正则表达式,也即是grep -E=egrep;
  • -i:不叫字符时忽略大小写的区别;
  • -v:取反,也即是输出匹配模式相反的内容;
  • -o:只显示匹配到的内容,而不是默认的一行内容;
  • -B:输出满足条件的前几行;
  • -A:输出满足条件的后几行;
  • -C:此选项相当于同时使用-A、-B,表示前后几行都输出;

此外grep为了让用户定义更精确的查找内容,还支持使用元字符,这类字符也是一种字符,但他们表达的含义不是字符本身的含义,而是用另外一层意思去解释。

  • ^:行首定位符,匹配以特定字符开头的行;
  • $:行尾定位符,匹配以特定字符结尾的行;
  • .:匹配单个字符;
  • *:匹配零个或多个前面的字符;
  • []:匹配指定字符集合内的任意一个字符;
  • [^]:匹配不在指定字符集合内的任一字符;
  • \<:词首定位符,相当于\b;
  • \>:词尾定位符,相当于\b;
  • x\{m\}:连续m次x;
  • x\{m,\}:至少连续m次x;
  • x\{m,n\}:至少m次,至多n次x;

实例展示

讲解毕竟是讲解,要想有提升,还必须要练习一番,那下面就是练习提升空间。

1、如何显示/proc/meminfo文件中以大写或小写S开头的行?

综合上面讲述的知识,抓住问题的关键字:开头、或,那么此问题也就迎刃而解了。

402

此外由于grep -E=egrep,因此这里还有第二种方法:

403

2、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户。

405

3、显示/etc/passwd文件中其默认shell为/bin/bash的用户。

406

4、找出/etc/passwd文件中的一位数或两位数。

407

5、显示/boot/grub/grub.conf中以至少一个空白字符开头的行。

此处需要注意的是,centos7版本以后没有此文件,因此建议在centos6及其以下版本中进行。408

6、显示/etc/rc.d/rc.sysinit文件中以#开头,后面至少跟一个空白字符,而后又有至少一个非空白字符的行。

说明:由于篇幅的原因,以下内容只截取了其中的一部分内容。

409

7、打出netstat -tan命令执行结果中以“LISTEN”,后或跟空白字符结尾的行。410

8、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。

使用cp -r /etc/skel/ /home/tuser1 && chmod -R 700 /home/tuser1即可,结果如下:

411

9、手动编辑/etc/group文件,添加组hadoop。

412

10、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号,其家目录为/home/hadoop。

413

11、复制/etc/ske1目录为/home/hadoop,要求修改hadoop目录的属组和其他用户没有任何访问权限。

使用cp -r /etc/skel/ /home/hadoop && chmod -R 700 /home/hadoopp即可,结果如下:

414

12、修改/home/hadoop目录及其内部所有文件的属主为hadoop。属组为hadoop。

使用chown修改文件的属主属组,则为: chown -R hadoop:hadoop hadoop/  ,结果如下:

415

13、添加用户bash,testbash,basher,nologin(此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息。

416

417

写在最后

今天的总结分享基本就是以上内容,当然很多知识不够全面,因为每个人理解得不一样,我觉得吧,学习还是要找一条属于自己的路,别人的路你可以参考,因为站在巨人的肩膀上才能看的更远,但是自己那一条人生路一定要有自己的特色,一定要属于你。这样才能走得更好,走得更远。

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90534

(0)
虫草君虫草君
上一篇 2017-12-24
下一篇 2017-12-24

相关推荐

  • Keepalived+LVS(nginx)高可用详解

    一:前言   Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);Keepalived的目的是模拟路由器的高可用,一般Keepalived是实现前端高可用,常用的前端高可用的组合有,就是我们常见的LVS+Keepalived、Nginx+Ke…

    Linux干货 2017-05-15
  • bash脚本函数和数组

        函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。    函数和shell程序比较相似,区别在于:  &nbsp…

    Linux干货 2016-08-24
  • 用户和组管理的命令

    用户管理概念: 用户类别:         管理员,普通用户,(系统用户和登录用户) 组类别:         管理组员,普通用户组         基本组和附加组         私有组,公共组 数…

    Linux干货 2016-12-21
  • ansible 入门与进阶

    ansible 入门与进阶 Configuration、Command and Control 是什么 ? SSH-based configuration management, deployment, and task execution system 运维工具的分类: agent:基于专用的agent程序完成管理功能,puppet, func, zabb…

    2016-11-09
  • 权限管理练习题

    权限管理练习题:     1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作?         不能cd到该目录下,不能ls -l访问目录里面文件元数据的信息    &nbsp…

    Linux干货 2016-08-04
  • 8-8 sed 练习

    8-8 作业 1. 如何设置tab缩进为4个字符? 2. 复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log; 3. 删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

    Linux干货 2016-08-12

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-07 17:58

    赞~前后有自己的总结,期待来一篇比较全面的文本三剑客的博文~加油~