一、查看用戶和組相關信息練習
1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
who | cut -d' ' -f1 | uniq
2、取出最后登錄到當前系統的用戶的相關信息。
cat /etc/passwd | grep "^`who | tail -1 | cut -d' ' -f1`"
3、取出當前系統上被用戶當作其默認shell的最多的那個shell。
cat /etc/passwd | cut -d: -f7 | sort | uniq -c | sort | head -1 | grep -E -o "/.*"
說明:cut命令取出每個用戶的shell后,使用sort排序,是將相同的shell放在一起,便于后面uniq使用。若不進行此次排序,uniq -c命令會顯示相連接在一起的相同shell的次數,對于沒有連接在一起的相同的shell,則會認為是兩個不同shell。 用head命令取到最多的shell后,由于前面使用了uniq命令,使用最多的shell前有使用次數,且使用次數是以幾個空格隔開的(根據使用的次數不同,空格數量也不同,故不能使用cut命令),所有使用了grep命令查找以/開頭的串,得到了最終結果。
4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
sort -n -t: -k3 /etc/passwd | tail | tr [a-z] [A-Z] > /tmp/maxusers.txt
5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
ifconfig | head -2 | tail -1 | grep -o [0-9].* | cut -d' ' -f1
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
ls -d /etc/*.conf | tr [a-z] [A-Z] > /tmp/etc.conf
7、顯示/var目錄下一級子目錄或文件的總個數。
ls -lA /var | tail -n +2 | wc -l
8、取出/etc/group文件中第三個字段數值最小的10個組的名字。
sort -n -t: -k3 /etc/group | head | cut -d: -f1
9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
cat /etc/{fstab,issue} > /tmp/etc.test
二、用戶和組管理命令及練習
用戶和組管理命令常用的有下面幾個:useradd(adduser)、usermod、userdel、passwd、groupadd、groupmod、groupdel、gpasswd、chage、chsh、id、su、pwck、grpck等下面分別簡單介紹
1、useradd(adduser)
adduser是useradd的一個軟連接,在使用上完全一致,用法是 useradd [options] LOGIN,常用的選項有:
-u 指定用戶的UID,其中,系統用戶UID在centos7上從1-999,在centos6以下為1-500。普通用戶可以的UID從系統用戶默認最大UID開始,如果不指定,從/etc/passwd中,以系統用戶或普通用戶最大UID值+1為默認UID
-g 后面可跟組名或組id 指定用戶的基本組id
-G 指定用戶的附加組
-d 指定用戶的家目錄,默認在/home/USERNAME
-s 指定用戶的默認shell
-r 指定創建的是一個系統用戶
-M 不創建用戶家目錄,即使使用了-d選項指定了用戶的家目錄路徑
-c comment /etc/passwd中,每個用戶的第五字段,用戶注釋
2、usermod
修改用戶的相關屬性,usermod [options] LOGIN
-c comment
-G 修改附加組
-aG 追加用戶附加組
-d HOMEDIR -m 重新指定用戶的家目錄,并將以前家目錄中的內容拷貝至新的家目錄中
-L 鎖定用戶
-U 解鎖用戶
3、userdel
刪除用戶,userdel [options] LOGIN,默認不刪除用戶的家目錄
-f 強制刪除,即使用戶正在登錄系統
-r 刪除用戶的家目錄
4、passwd
創建或修改用戶密碼。root用戶可創建或修改所有用戶的密碼,而普通用戶只能創建或修改自己的密碼
–stdin 從標準輸入讀取字符串作為密碼,一般使用echo “passwords” | passwd –stdin USERNAME
5、groupadd
創建組 groupadd [options] group
-g 指定組的組id,默認為/etc/group文件中系統組或用戶組組id最大值+1
-r 創建系統組
6、groupdel
刪除已有組 groupadd [options] group
7、groupmod
修改組的相關屬性
-g 修改GID
8、gpasswd
組密碼。當一個用戶需要加入一個組時,如果這個組沒有組密碼,用戶就可以直接加入,如果有組密碼,則在加入時需要向系統提供該組密碼,才能加入。該機制是為了保護組用戶的內容。
9、chage
修改用戶密碼的相關時間信息
在/etc/shadowd中,每一行共有8個字段,從第三個字段開始,其含義為:
-d 3:最近一次密碼修改時間(自1970年1月1日起止最近一次修改密碼所經過的天數) -m 4:密碼不可被修改時間(自最近一次密碼修改之日起,幾天內密碼不能被在次修改) -M 5:密碼使用期限(從最近一次修改密碼起,密碼可以使用的天數) -W 6:密碼警告天數(以密碼可以使用的最后一天起,即1970年1月1日起到最經一次修改密碼天數加上密碼使用期限至之日,前天幾天,開始提示用戶修改密碼) -I -7:密碼失效天數。到密碼使用期限后,在失效天數內,用戶登錄系統時,強制用戶修改密碼 -E 8:賬戶過期時間。自1970年1月1日起止,到帳戶過期時間后,該帳戶將永遠不能被使用
10、chsh
更改用戶默認shell
11、id
顯示用戶的UID GID 附加組等信息 常用選項是 -u -g -G
12、su
切換用戶
su – 切換用戶時,是登錄式切換,將讀取要切換用戶的用戶配置
su 非登錄式切換,不讀取用戶的用戶配置
13、pwck
檢查/etc/passwd和/etc/shadow文件的完整性和語法正確性
14、grpck
檢查/etc/group和/etc/gshadow文件的完整性和語法正確性
用戶和組管理類命令的使用方法并完成以下練習:
(1)、創建組distro,其GID為2016;
groupadd -g 2016 distro
(2)、創建用戶mandriva, 其ID號為1005;基本組為distro;
useradd -u 1005 -g distro mandriva
(3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;
useradd -u 1100 -d /home/linux mageia
(4)、給用戶mageia添加密碼,密碼為mageedu;
echo "mageedu" | passwd --stdin mageia
(5)、刪除mandriva,但保留其家目錄;
userdel mandriva
(6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
useradd -u 2002 -g distro -G peguin slackware
(7)、修改slackware的默認shell為/bin/tcsh;
usermod -s /bin/tcsh slackware
(8)、為用戶slackware新增附加組admins;
groupadd admins
usermod -aG admins slackware
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92474