第四周,用户权限管理和正则表达式练习

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

● 实现命令

[root@localhost ~]#cp -r /etc/skel /home/tuser1

[root@localhost ~]#chmod -R og= /home/tuser1

4-1

● 命令分解

cp:复制命令,使用 -r 选项进行目录递归复制;

chmod:修改用户和组权限,使用 -R 选项进行递归修改,命令中 “o”表示其他用户,”g”表示组,等于空值即表示没有任何访问权限。

 

2、编辑/etc/group文件,添加组hadoop。

● 实现命令

[root@localhost ~]#vim /etc/group

添加:hadoop:x:2019:

4-2

● 命令分解

vim:编辑配置文件命令,添加组名、组ID。

 

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

● 实现命令

[root@localhost ~]#vim /etc/passwd

添加:hadoop:x:2003:2019::/home/hadoop:/bin/bash

4-3

● 命令分解

vim:编辑配置文件命令,添加用户名、用户ID、组ID、家目录和默认shell。

 

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

● 实现命令

[root@localhost ~]# cp -r /etc/skel/ /home/hadoop

[root@localhost ~]# chmod og= /home/hadoop/

4-4

● 命令分解

cp:复制命令,使用 -r 选项进行目录递归复制;

chmod:修改用户和组权限,命令中 “o”表示其他用户,”g”表示组,等于空值即表示该目录没有任何访问权限。

 

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

● 实现命令

[root@localhost ~]# chown -R hadoop:hadoop /home/hadoop/

4-5

● 命令分解

chown:更改文件或目录的从属关系,使用 -R 选项进行递归修改;

 

6、显示/proc/meminfo文件中以大写或小写S开头的行,用两种方式;

● 实现命令

[root@localhost ~]# grep “^[sS]” /proc/meminfo

4-6-1

[root@localhost ~]# grep -i “^s” /proc/meminfo

4-6-2

● 命令分解

grep:文本搜索工具,根据指定的过滤条件对目标文本逐行进行匹配检查;

正则表达式 ^:行首锚定;

正则表达式 []:匹配指定范围内的任意单个字符;

第二种方法中的 -i 选项:表示忽略字符的大小写。

 

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

● 实现命令

[root@localhost ~]# grep -v “/sbin/nologin$” /etc/passwd | cut -d “:” -f1

4-7

● 命令分解

grep:文本搜索,使用 -v 选项进行反向显示,即显示不能匹配到的文本内容;

正则表达式 $:行尾锚定;

cut:使用 -d 和 -f 选项截取出用户名。

 

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

● 实现命令

[root@localhost ~]# grep “/bin/bash$” /etc/passwd | cut -d “:” -f1

4-8

● 命令分解

grep:文本搜索;

正则表达式 $:行尾锚定;

cut:使用 -d 和 -f 选项截取出用户名。

 

9、找出/etc/passwd文件中的一位数或两位数;

● 实现命令

[root@localhost ~]# grep -o “\<[0-9]\{1,2\}\>” /etc/passwd

4-9

● 命令分解

grep:文本搜索,使用 -o 选项只显示匹配到的内容本身;

正则表达式 \< \>:词首、词尾锚定;

正则表达式 [0-9]:匹配指定范围内的数字;

正则表达式 \{1,2\}:表示前面的数字,出现1~2次。

 

10、显示/boot/grub2/grub.cfg中以至少一个空白字符开头的行;

● 实现命令

[root@localhost ~]# grep “^[[:space:]]\+” /boot/grub2/grub.cfg

4-10

● 命令分解

grep:文本搜索;

正则表达式 ^:行首锚定;

正则表达式 [[:space:]]:空白字符;

正则表达式 \+:前面的内容至少出现一次。

 

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

● 实现命令

[root@localhost ~]# grep “^#[[:space:]]\+[^[:space:]]\+” /etc/rc.local

4-11

● 命令分解

grep:文本搜索;

正则表达式 ^:行首锚定;

正则表达式 \+:前面的内容至少出现一次;

正则表达式 [^]:匹配指定范围外的任意字符。

 

12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

● 实现命令

[root@localhost ~]# netstat -tan | grep “LISTEN[[:space:]]\+”

4-12

● 命令分解

|grep:使用管道进行文本内容搜索;

正则表达式 [[:space:]]\+:表示前面的空格字符至少出现一次。

 

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

● 实现命令

[root@localhost ~]# useradd bash

[root@localhost ~]# useradd testbash

[root@localhost ~]# useradd basher

[root@localhost ~]# useradd -s /sbin/nologin nologin

[root@localhost ~]# grep -E “^([^:]+\>).*\1$” /etc/passwd

4-13

● 命令分解

grep:文本匹配,使用 -E 选项使用扩展正则表达式进行查找内容的匹配;

正则表达式 ^([^:]+\>):锚定行首及词尾,匹配非冒号的内容,并进行分组引用;

正则表达式 .*:中间是任意字符,出现任意次;

正则表达式 \1$:锚定行尾,内容是之前括号里匹配到的字符;

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

(1)
joey.qiaojoey.qiao
上一篇 2018-05-31 12:12
下一篇 2018-05-31 20:51

相关推荐

  • LVS介绍及工作原理

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

    2018-07-03
  • 第九周

    总结

    Linux笔记 2018-05-27
  • Linux中的练习题

    Linux文本查看和处理练习题
    Linux用户和组管理类命令的使用方法及练习题

    Linux笔记 2018-07-08
  • Linux文件系统简介

    “一切皆是文件”是Linux基本哲学思想之一,可见文件系统在linux系统中的重要性,学好文件系统将为以后深入研究与学习Linux系统奠定良好的基础。

    2018-03-30
  • 初识Nginx——晓以大意 明以细理

    什么是nginx?nginx is a free,open-source,high-performance http server and reverse proxy,as well as an IMAP/POP3 proxy.通俗的说Nginx提供web服务,反向代理,以及IMAP/POP3代理,那么什么是web服务?反向代理?IMAP/POP3代理? w…

    2017-09-10
  • yum命令及yum仓库构建

    yum命令 yum [options] [command] [package …] yum命令行选项 –nogpgcheck 禁止进行gpg check -y 自动回答yes -q 静默模式 –disablerepo=repoidglob 临时禁用此处的repo –enablerepo=repoidglob 临时启用此处的repo –noplug…

    Linux笔记 2018-06-10