一、列出目前系統上所有已經登入的使用者的使用者名(同使用者登入多次隻顯示一次)。
題目并沒有說明取出的使用者名是否允許排序處理,是以可寫成:
# 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$'