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

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
下一篇 2018-05-31

相关推荐

  • 进程

    进程

    2018-06-03
  • 学习笔记(7)

    学习笔记(7)

    Linux笔记 2018-04-22
  • 第一周作业

    1、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入设备和输出设备五大部分组成。 (1)运算器的功能是用于完成算术运算、逻辑运算。负责计算机执行的所有数学与逻辑功能。 (2)控制器的功能是主要负责对程序所执行的指令进行分析,并协调计算机各部件进行工作计算机的所有 其他部件。 (3)存储器的功能是用于储存信息的设备,通常是将信息数字化后再利用电…

    Linux笔记 2018-05-11
  • CentOS10.5安装过程详解

    回顾下CentOS10.5版本的安装,巩固学习内容。

    2018-07-22
  • 变量

    变量 echo $name 与 echo “$name” 假如变量是读取文件,前者会自动缩进成一行,后者保留原有格式 (umask=022,mkdir /f1)括号相当于开启一个临时子进程,能读取当前shall的变量等信息,但是进程号不变,命令结束后恢复刚才状态 局部变量,环境变量,只读变量(常量),位置变量,数组 局部变量:只在当前…

    Linux笔记 2018-04-15
  • 软件包管理

    本章重点介绍rpm包管理器和rpm的使用

    Linux笔记 2018-04-19