馬哥運維班第四周做業

一、複製/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

若有錯誤之處,煩請看官評論裏指點一下,小女子不勝感激。

相關文章
相關標籤/搜索