天天看點

linux進階運維班,Linux運維班第二次作業

一、列出目前系統上所有已經登入的使用者的使用者名(同使用者登入多次隻顯示一次)。

題目并沒有說明取出的使用者名是否允許排序處理,是以可寫成:

# who | cut -d' ' -f1 | sort -u

二、取出目前系統上被使用者當作其預設shell的最多的那個shell

統計/etc/passwd檔案中預設shell出現最多的shell的次數再取出

# cat /etc/passwd | cut -d: -f7 | uniq -c |sort -nr | head -n 1

三、将/etc/passwd中的第三個字段數值最大的後10個使用者的資訊全部改寫為大寫後儲存至/tmp/maxusers.txt檔案中

# cat/etc/passwd | sort -nr -t: -k3 | head -n 10 | tr 'a-z' 'A-Z'

> /tmp/maxusers.txt

四、取出目前主機的IP位址,提示:對ifconfig指令的結果進行切分

先取出IP位址的所在行再進行切分

#ifconfig | grep 'inet[[:space:]].*' | cut -d' ' -f10 | head -n 1

五、顯示/var目錄下一級子目錄或檔案的總個數

# tree -L 1 /var |tail -n 1

六、取出/etc/group檔案中第三個字段數值最小的10個組的名字

# cat /etc/group | sort -n -t: -k3 | head -n 10 | cut-d':' -f1

七、将/etc/fstab和/etc/issue檔案的内容合并為同一個内容後儲存至/tmp/etc.test檔案中

# cat /etc/issue >> /tmp/etc.test | cat/etc/fstab >> /tmp/etc.test

八、請總結描述使用者群組管理類指令的使用方法并完成以下練習:

(1)建立組distro,其GID為2016

建立組指令:groupadd

其用法:groupadd [options]... groupname

參數:-g GID,表示指明建立組的組号;

# groupadd -g 2016 distro

(2)建立使用者mandriva,其ID号為1005;基本組為distro

建立使用者指令:useradd

其用法:useradd [options]... username

參數:-u UID,表示指明建立使用者的ID号;

-g GID,表示指明建立使用者的基本組,可為組号或組名;

# useradd -g distro -u 1005 mandriva

(3)建立使用者mageia,其ID号為1100,家目錄為/home/linux;

同使用指令:useradd

參數:-d /path_to_homedir,指定特定路徑為使用者的家目錄;

# useradd -u 1100 -d /home/linux mageia

(4)給使用者mageia添加密碼,密碼為mageedu;

添加或修改使用者密碼指令:passwd

其用法:passwd [options] username

參數:--stdin:從标準輸入接收使用者密碼;

一般通過passwd指令直接跟使用者名(mageia),然後手動輸入兩次密碼以啟用該用

戶的密碼登入認證;但是這裡也可以從标準輸入一次性給使用者設定好密碼:

# echo "mageedu" | passwd--stdin mageia

(5)删除mandriva,但保留其家目錄;

删除使用者指令:userdel

其用法:userdel [option]... username

參數:-r:删除使用者家目錄,不添加該參數預設不删除;

# userdel mandriva

(6)建立使用者slackware,其ID号為2002,基本組為distro,附加組peguin;

同使用指令:useradd

參數:-u UID:指定使用者ID;

-g GID:指定使用者基本組;

-G GROUP1[,GROUP2,...]:指定使用者附加組;

# useradd -u 2002 -g distro -G peguinslackware

(7)修改slackware的預設shell為/bin/tcsh;

修改使用者屬性指令:usermod

用法:usermod [option] username

參數:-s SHELL,修改使用者的預設shell;

# usermod -s /bin/tcsh slackware

(8)為使用者slackware新增附加組admins;

同使用指令:usermod

參數:-G GROUP1[,GROUP2,...]:給使用者指定新附加組,配合"-a"參數表示

給使用者添加新附加組,原有附加組不會被覆寫;

# usermod -a -G admins slackware

(9)為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警

告為3天;

設定使用者密碼屬性使用指令:chage

用法:chage [option]... username

參數:-m:表示設定密碼的最小使用天數;

-M:表示設定密碼的最大使用天數;

-W:表示設定密碼失效前提前多少天提示警告資訊;

# chage -m 3 -M 180 -W 3 slackware

(10)添加使用者openstack,其ID号為3003,基本組為clouds,附加組為peguin

和nova;

添加使用者使用指令:useradd,與(6)小題類似;

# useradd -u 3003 -g clouds -Gpeguin,nova openstack

(11)添加系統使用者mysql,要求其shell為/sbin/nologin;

使用指令:useradd

參數:-r:表示添加的是系統使用者;

-s SHELL:指明建立使用者的預設shell;

# useradd -s /sbin/nologin -r mysql

(12)使用echo指令,非互動式為openstack添加密碼;

使用指令:passwd,與(4)小題類似;

# echo "open" | passwd--stdin openstack

九、複制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其内部檔案的屬組和其他使用者均沒有任何通路權限

# cp -arf /etc/skel/*/home/tuser1

# chmod -R 600 /home/tuser1

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

第一種方式:比對錨定行首為小寫或大寫S開頭的行;

# cat /proc/meminfo | grep '^[s,S].*'

第二種方式:比對詞首字母為小寫或大寫S開頭的行;

# cat /proc/meminfo | grep '\b[s,S].*'

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

# cat /etc/passwd | grep -v'.*nologin$' | cut -d':' -f1

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

# cat /etc/passwd | grep '.*bash$'| cut -d':' -f1

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

# cat /etc/passwd | grep'\b[0-9]\{1,2\}\b'

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

# cat /etc/rc.d/rc.sysinit |grep '^#[[:space:]]\+[^[:space:]]\+'

十五、打出netstat-tan指令執行結果中以'LISTEN',後或跟空白字元結尾的行;

# netstat -tan | grep'.*LISTEN\b'

十六、添加使用者bash,testbash,basher,nologin(此一個使用者的shell為/sbin/nologin),而後找出目前系統上其使用者名和預設shell相同的使用者的資訊;

思路:取出行首使用者名和行尾bash名同名的行,将整個錨定行首的關鍵字再在行尾錨定一次即可

# useradd bash

# useradd testbash

# useradd basher

# useradd -s /sbin/nologin nologin

# cat /etc/passwd | grep'\(^[a-z][^:]\+\).*\1$'