1. 程式人生 > >Linux使用者組和許可權管理及正則表示式

Linux使用者組和許可權管理及正則表示式

1、複製/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部檔案的屬組和其他使用者沒有任何訪問許可權。

[[email protected] ~]# cp -a /etc/skel /home/tuser1
[[email protected] ~]# chmod -R 700 /home/tuser1
[[email protected] ~]# ll -a /home/tuser1
total 12
drwx------. 2 root root  62 Nov 22  2017 .
drwxr-xr-x. 3 root root  20 Oct 17 17:36 ..
-rwx------. 1 root root  18 Aug  3  2017 .bash_logout
-rwx------. 1 root root 193 Aug  3  2017 .bash_profile
-rwx------. 1 root root 231 Aug  3  2017 .bashrc

2、編輯/etc/group檔案,新增組hadoop。

[[email protected] ~]# echo "hadoop:x:2018" >> /etc/group
[[email protected] ~]# tail -1 /etc/group
hadoop:x:2018

3、手動編輯/etc/passwd檔案新增一行,新增使用者hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。

[[email protected] ~]# echo "hadoop:x:1001:2018::/home/hadoop:/bin/bash" >> /etc/passwd
[
[email protected]
~]# tail -1 /etc/passwd hadoop:x:1001:2018::/home/hadoop:/bin/bash

4、複製/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其他使用者沒有任何訪問許可權。

[[email protected] ~]# cp -a /etc/skel/ /home/hadoop/
[[email protected] ~]# chmod 700 / /home/hadoop/
[[email protected] ~]# ll -a /home/hadoop
total 12
drwx------. 2 root root  62 Nov 22  2017 .
drwxr-xr-x. 5 root root  45 Oct 17 18:06 ..
-rw-r--r--. 1 root root  18 Aug  3  2017 .bash_logout
-rw-r--r--. 1 root root 193 Aug  3  2017 .bash_profile
-rw-r--r--. 1 root root 231 Aug  3  2017 .bashrc

5、修改/home/hadoop目錄及其內部所有檔案的屬主為hadoop,屬組為hadoop。

[[email protected] ~]# chmod -R hadoop:hadoop /home/hadoop/

6、顯示/proc/meminfo檔案中以大寫或小寫S開頭的行;用兩種方式;

[[email protected] ~]# cat /proc/meminfo |egrep "^(s|S)"
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:             41444 kB
Slab:              71508 kB
SReclaimable:      26240 kB
SUnreclaim:        45268 kB
[[email protected] ~]# grep -i "^s" /proc/meminfo 
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:             41444 kB
Slab:              71508 kB
SReclaimable:      26240 kB
SUnreclaim:        45268 kB

7、顯示/etc/passwd檔案中其預設shell為非/sbin/nologin的使用者;

[[email protected] ~]# grep -v "/sbin/nologin$" /etc/passwd |cut -d : -f1
root
sync
shutdown
halt
hadoop

8、顯示/etc/passwd檔案中其預設shell為/bin/bash的使用者;

[[email protected] ~]# grep  "/bin/bash$" /etc/passwd |cut -d : -f1
root
hadoop

9、找出/etc/passwd檔案中的一位數或兩位數;

[[email protected] ~]# egrep -o  "\<[0-9]{1,2}\>" /etc/passwd |tr "\n" ","
0,0,1,1,2,2,3,4,4,7,5,0,6,0,7,0,8,12,11,0,12,14,50,99,99,81,81,89,89,74,74

10、顯示/boot/grub/grub.conf中以至少一個空白字元開頭的行;

[[email protected] ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf

11、顯示/etc/rc.d/rc.sysinit檔案中以#開頭,後面跟至少一個空白字元,而後又有至少一個非空白字元的行;

[[email protected] ~]# grep "^#[[:space:]]\+[^[:space:]]\+" /etc/rc.d/rc.sysinit

12、打出netstat -tan命令執行結果中以‘LISTEN’後跟空白字元結尾的行;

[[email protected] ~]# netstat -tan |grep "\bLISTEN[[:space:]]\+$"
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     

13、新增使用者bash,testbash,basher,nologin(此一個使用者的shell為/sbin/nologin),而後找出當前系統上其使用者名稱和預設shell相同的使用者的資訊;

[[email protected] ~]# egrep   "^([^:]+\>).*\1$" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:1001:1001::/home/bash:/bin/bash
nologin:x:1004:1004::/home/nologin:/sbin/nologin