第四周学习总结

写在最前

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

知识详解

上一周我们说到了用户的管理,其中有像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 10:52
下一篇 2017-12-24 14:49

相关推荐

  • LVS负载均衡实战演练

    LVS负载均衡实战之lvs-nat模型 1.准备好机器,配置好时间同步,配置号网络,主机名 172.16.251.91 client [桥接] [网关为172.16.251.90] #lvs负载均衡两块网卡 172.16.251.90  lvs [网卡1] [桥接] 192.168.42.150  lvs [网卡2] [VMnet8] 192.168.42.…

    Linux干货 2017-06-22
  • yum函数介绍以及自建yum仓库

    一、前言     在之前介绍了yum的配置(详细请移步 http://www.178linux.com/archives/6445)。但是有没有发现一个问题,虽然我们已将仓库指向一个可用的仓库服务器,但是随着Linux的不断升级和改版,我们是否还需要不断的去修改仓库的配置文件,如果只有一台还好,那如果我们有多…

    Linux干货 2015-07-24
  • Linux 的shell脚本编程

    shell脚本编程 程序:指令+数据 程序编辑风格:             过程式:以指令为中心,数据服务于指令             对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指…

    Linux干货 2016-08-15
  • 如何在微软云上搭建mysql主从

    大家好: 今天我分享下在生产环境的微软云服务器上如何搭建mysql主从: 环境如下图: 我把cnux06-testing设为Mysql主服务器,暂时没需求的cnux04-web1db2设为Mysql从服务器 1–首先要在master上开启binlog日志功能并使主从库中的 server-id保持不同 操作步骤如下: A: 先查看mysql的主目录…

    Linux干货 2017-02-14
  • bash编程之数组和字符串处理

    数组: 程序=指令+数据          指令:     数据:变量、文件 数组:存储过个元素的连续的内存空间; 变量:存储单个元素的内存空间; 数组名:整个数组只有一个名字; 数组索引:编号从0开始;   &nbsp…

    Linux干货 2016-08-24
  • LVS调度方法

    lvs scheduler:     根据其调度时是否考虑后端主机的当前负载,可分为静态方法和动态方法     静态方法:仅根据算法本身进行调度:         RR:Round Ronin 轮询         WRR:Weighted…

    Linux干货 2017-01-10

评论列表(1条)

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

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