第四周,用戶權限管理和正則表達式練習

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.www58058.com/99875

(1)
joey.qiaojoey.qiao
上一篇 2018-05-31
下一篇 2018-05-31

相關推薦

欧美性久久久久