一、複製/etc/skel目錄爲/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。shell
[root@localhost home]# cp -r /etc/skel /home/tsuser1 && ls -ld /home/tsuser1 drwxr-xr-x. 4 root root 4096 Aug 28 05:46 /home/tsuser1 [root@localhost home]# chmod g-r,o-r /home/tsuser1 && ls -ld /home/tsuser1 drwx--x--x. 4 root root 4096 Aug 28 05:46 /home/tsuser1 [root@localhost home]# su - nat //切換用戶nat測試其餘用戶是否有訪問權限,提示權限不容許。 Welcome 500 [nat@localhost ~]$ ls /home/tsuser1 ls: cannot open directory /home/tsuser1: Permission denied
二、編輯/etc/group文件,添加組hadoop。centos
1.打開文件,由於須要直接在最後一行添加新組,用選項+,直接打開文件光標定位到最後一行非空白行bash
[root@localhost ~]# vi + /etc/passwd
2.打開文件,首先查找是否存在hadoop用戶,冒號模式下 :?hadoop 顯示E486: Pattern not found: hadoop,tcp
說明此時系統沒有hadoop組,group文件的格式:group_name:passwd:GID:user_list,能夠直接新添一行 :o 在當前行行下新添一行 hadoop:x:503:ide
slocate:x:21: nat:x:500: yannic:x:501: user1:x:502: hadoop:x:503:
3.:wq保存退出oop
4.測試是否添加組成功:測試
[root@localhost ~]# useradd test1 -g hadoop [root@localhost ~]#
若是不存在提示useradd: group 'hadoop' does not exist,這裏沒報錯說明添加組成功ui
三、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID爲hadoop組的id號;其家目錄爲/home/hadoop。spa
1.打開文件3d
[root@localhost ~]# vi + /etc/passwd
2.冒號模式下 :?hadoop 顯示E486: Pattern not found: hadoop
3.因爲組成比較複雜,我這裏直接複製上面一行,yy 複製一行 p:粘貼,而後
nat:x:500:500:nat:/home/nat:/bin/bash yannic:x:501:501::/home/yannic:/bin/bash user1:x:502:502::/home/user1:/bin/bash user2:x:503:503::/home/user2:/bin/bash test1:x:504:503::/home/test1:/bin/bash test1:x:504:503::/home/test1:/bin/bash
4.修改,按i進入輸入模式,UID能夠本身定義,centos6 普通用戶uid 500+,我這裏定義504.gid定義爲hadoop的gid503,家目錄修改成/home/hadoop
nat:x:500:500:nat:/home/nat:/bin/bash yannic:x:501:501::/home/yannic:/bin/bash user1:x:502:502::/home/user1:/bin/bash user2:x:503:503::/home/user2:/bin/bash test1:x:504:503::/home/test1:/bin/bash hadoop:x:505:503::/home/hadoop:/bin/bash -- INSERT --
5.:wq保存退出
四、複製/etc/skel目錄爲/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
[root@localhost ~]# cp -r /etc/skel /home/hadoop && ls -ld /home/hadoop drwxr-xr-x. 4 root root 4096 Aug 28 21:30 /home/hadoop [root@localhost ~]# chmod g-r,o-r /home/hadoop && ls -ld /home/hadoop drwx--x--x. 4 root root 4096 Aug 28 21:30 /home/hadoop
五、修改/home/hadoop目錄及其內部全部文件的屬主爲hadoop,屬組爲hadoop。
//chown OWNER:GROUP filename:修改文件屬主和屬組 //-R 選項,表示遞歸,文件以及下子文件和文件目錄和父目錄權限一致 [root@localhost hadoop]# chown -R hadoop:hadoop /home/hadoop && ls -ld /home/hadoop drwx--x--x. 4 hadoop hadoop 4096 Aug 28 21:39 /home/hadoop //用root用戶測試,建立的新文件屬主爲hadoop,屬組爲hadoop [root@localhost hadoop]# touch a.txt && ls -l a.txt -rw-r--r--. 1 hadoop hadoop 0 Aug 28 21:42 a.txt
六、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
1.使用-i選項,忽略大小寫
[root@localhost hadoop]# grep -i '^s' /proc/meminfo SwapCached: 1000 kB SwapTotal: 2031608 kB SwapFree: 2025636 kB Shmem: 4380 kB Slab: 204440 kB SReclaimable: 134516 kB SUnreclaim: 69924 kB
2.使用[]通配符匹配,匹配[]內任意單個字符
[root@localhost hadoop]# grep '^[sS]' /proc/meminfo SwapCached: 1000 kB SwapTotal: 2031608 kB SwapFree: 2025636 kB Shmem: 4380 kB Slab: 204432 kB SReclaimable: 134516 kB SUnreclaim: 69916 kB
七、顯示/etc/passwd文件中其默認shell爲非/sbin/nologin的用戶;
//添加兩個用戶,一個默認shell爲/sbin/nologin,另外一個爲/bin/nologin
[root@localhost hadoop]# useradd test2 -s "/sbin/nologin" [root@localhost hadoop]# useradd test3 -s "/bin/nologin"
//-v 選項顯示不匹配的行,$行尾匹配grep "/bin/bash$" /etc/passwd | cut -d: -f1
[root@localhost hadoop]# grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1 root sync shutdown halt nat yannic user1 user2 test1 hadoop test3
八、顯示/etc/passwd文件中其默認shell爲/bin/bash的用戶;
[root@localhost hadoop]# grep "/bin/bash$" /etc/passwd | cut -d: -f1 root nat yannic user1 user2 test1 hadoop
九、找出/etc/passwd文件中的一位數或兩位數;
[0-9]:匹配數字,{1,2}:匹配次數,1~2次
\<:詞首錨定,\>:詞尾錨定,這裏要注意的、必定要加上這個位置錨定,題目要求1位或兩位,若是不加上限制則會匹配三位數、四位數等
-o:只顯示匹配到的字符串
[root@localhost hadoop]# grep -o "\<[0-9]\{1,2\}\>" /etc/passwd 0 0 1 1 2 2 3 4 4 7
十、顯示/boot/grub/grub.conf中以致少一個空白字符開頭的行;
^:行首匹配
[[:space:]]:匹配空白字符或tab字符
[root@localhost hadoop]# grep "^[[:space:]]" /boot/grub/grub.conf root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=33ddc759-09de-4936-845a-811c03ea3b08 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img
其實這樣就能夠了,題目中要求至少一個空白字符,有一個空白字符就已經知足了,固然你不放心,加上\+:匹配次數,至少一次,效果也是同樣的
[root@localhost hadoop]# grep "^[[:space:]]\+" /boot/grub/grub.conf root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=33ddc759-09de-4936-845a-811c03ea3b08 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img
十一、顯示/etc/rc.d/rc.sysinit文件中以#開頭,後面跟至少一個空白字符,然後又有至少一個非空白字符的行;
[root@localhost hadoop]# grep "^#.*[[:space:]].*[^[:space:]]" /etc/rc.d/rc.sysinit # /etc/rc.d/rc.sysinit - run once at boot time # Taken in part from Miquel van Smoorenburg's bcheckrc. #remount /dev/shm to set attributes from fstab #669700 #remount /proc to set attributes from fstab #984003 # Check SELinux status
十二、打出netstat -tan命令執行結果中以‘LISTEN’,後或跟空白字符結尾的行;
[:space:]:空白字符,*匹配任意次數,能夠0次或屢次
$:行尾錨定,加上位置錨定後,後面就不能跟其餘字符
[root@localhost hadoop]# netstat -tan | grep "LISTEN[[:space:]]*$" tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:631 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN
1三、添加用戶bash, testbash, basher, nologin (此一個用戶的shell爲/sbin/nologin),然後找出當前系統上其用戶名和默認shell相同的用戶的信息;
1.添加用戶
[root@localhost hadoop]# useradd bash;useradd testbash;useradd basher;useradd -s "/sbin/nologin" nologin
2.查看剛添加的用戶是否正確
[root@localhost hadoop]# tail -4 /etc/passwd bash:x:508:508::/home/bash:/bin/bash testbash:x:509:509::/home/testbash:/bin/bash basher:x:510:510::/home/basher:/bin/bash nologin:x:511:511::/home/nologin:/sbin/nologin
3.使用()分組,\1後向引用最外層小括號的內容
[root@localhost hadoop]# grep '^\(.*\):.*\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:508:508::/home/bash:/bin/bash nologin:x:511:511::/home/nologin:/sbin/nologin
若有錯誤之處,煩請看官評論裏指點一下,小女子不勝感激。