第三周課程練習
1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
[root@localhost ~]# who | cut -f1 -d' ' | uniq root
2、取出最后登錄到當前系統的用戶的相關信息。
[root@www ~]# id $(last | head -1 | cut -d" " -f1) uid=0(root) gid=0(root) groups=0(root)
3、取出當前系統上被用戶當作其默認shell的最多的那個shell。
[root@localhost ~]# cut -d: -f7 /etc/passwd | uniq -c | sort -k1 -n | tail -n1 17 /sbin/nologin
4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
[root@localhost ~]# sort -t: -k3 -n /etc/passwd | tail -10 | tr [[:lower:]] [[:upper:]] &> /tmp/maxusers.txt [root@localhost ~]# cat /tmp/maxusers.txt ALEX:X:505:506::/HOME/ALEX:/BIN/BASH AROD:X:506:507::/HOME/AROD:/BIN/BASH BASH:X:507:508::/HOME/BASH:/SBIN/NOLOGIN TESTBASH:X:508:509::/HOME/TESTBASH:/SBIN/NOLOGIN BASHER:X:509:510::/HOME/BASHER:/SBIN/NOLOGIN NOLOGIN:X:510:511::/HOME/NOLOGIN:/SBIN/NOLOGIN USER1:X:511:512::/HOME/USER1:/BIN/BASH CENTOS:X:512:513::/HOME/CENTOS:/BIN/BASH NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN TEST:X:4200000000:514::/HOME/TEST:/BIN/BASH
5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
[root@localhost ~]# ifconfig | grep -o "\(\<[[:digit:]]\{1,3\}\>.\)\{3\}\<[[:digit:]]\{1,3\}" | head -1 10.201.106.129
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
[root@localhost ~]# ls -aR /etc/*.conf | tr [[:lower:]] [[:upper:]] > /tmp/etc.conf [root@localhost ~]# cat /tmp/etc.conf /ETC/ASOUND.CONF /ETC/AUTOFS.CONF /ETC/AUTOFS_LDAP_AUTH.CONF /ETC/CAS.CONF /ETC/DNSMASQ.CONF
7、顯示/var目錄下一級子目錄或文件的總個數。
[root@localhost ~]# ls /var | wc -l 22
8、取出/etc/group文件中第三個字段數值最小的10個組的名字。
[root@localhost ~]# sort -t: -k3 -n /etc/group | head -10 | cut -d: -f1 root bin daemon sys adm tty disk lp mem kmem
9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
[root@localhost ~]# cat /etc/fstab /etc/issue /tmp/etc.test
10、請總結描述用戶和組管理類命令的使用方法并完成以下練習:
10.1 常用用戶管理命令:useradd、userdel、usermod、passwd、pwck、su。
10.1.1 useradd:添加linux系統用戶,可在創建時復數其它參數,指定用戶的組,默認shell等信息;
命令格式:useradd [選項] 用戶名
常用選項:
-u UID:【UID_MIN,UID_MAX】,定義在/etc/login.defs;
-g GID:指明用戶所屬的基本組,可為組名,可以GID;
-c“COMMENT":用戶的注釋信息:
-d /PATH/TO/HOME_DIR:以指定的路徑為家目錄;
-s SHELL:指明用戶的默認shell程序,可用列表在/etc/shell文件中;
-G GID:GROUP1[GROUP2,……[,GROUP]]]:為用戶指明附加組;組必須事先存在;
-r:創建系統用戶,(CentOS6 ID<500,CentOS7 ID<1000)
10.1.2 userdel:刪除用戶及其相關目錄文件;
命令格式:userdel [選項] 用戶名
常用選項:
r:刪除用戶時同時把它的家目錄刪除;
10.1.3 usermod:更改一個用戶的信息;
命令格式:usermod [選項] 用戶名
常用選項:
-u UID:新UID
-g GID:新基本組
-G GID:GROUP1[GROUP2,……[,GROUP]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;
s SHELL:新的默認SHELL;
-c ’COMMENT':新的注釋信息;
-d HOME:新的家目錄:原有家目錄中的文件不會同時移動至新的家目錄,若要移動,則同時使用-m選項; .
-l login_name:新的登錄名
-L:lock指定用戶
-U:unlock指定用戶
10.1.4 passwd:修改用戶密碼或鎖定解鎖用戶;
命令格式:passwd [選項] 用戶名
常用參數:
-l:鎖定指定用戶
-u:解鎖指定用戶
-n min-days:命令最短使用期限;
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
-i inactive-days:非活動期限,密碼過期后允許你多少天內登錄改密碼;
-e YYYY-MM-DD:指明用戶賬號過期日期;
-f INACTIVE:設定非活動期限;
–stdin:從標準輸入接收用戶密碼;
10.1.5 pwck:用來驗證系統/etc/passwd和/etc/shadow文件的內容和格式完整性;
命令格式:pwck [選項] [passwd [ shadow ]]
常用參數:
-q:僅報告錯誤信息;
-s:以用戶id排序
10.1.6 su:切換用戶或以其他用戶身份執行命令;
命令格式:su [OPTION]… [-] [用戶名 [ARG]…]
切換用戶的方式:
su UserName:非登錄式切換,即不會讀取目標用戶的配置文件;
su – UserName:登錄式切換,會讀取目標用戶的配置文件;完全切換;
Note:root su至其他用戶無須密碼,非root用戶切換時需要密碼;
10.2 常用用戶組管理命令:groupadd、groupdel、groupmod、gpasswd。
10.2.1 groupadd:創建一個新組,并可以通過其它選項輔助指定其GID;
命令格式:groupadd [OPTION]……group_name
常用參數:
-g GID:指明GID號;【GID_MIN,GID_MAX】
-r:創建系統組:(CentOS6 ID<500,CentOS7 ID<1000)
10.2.2 groupdel:刪除一個組;
命令格式:groupdel GROUP
10.2.3 groupmod:組屬性修改
命令格式:groupmod [選項]……組名
常用參數:
-n group_name:新名字;
-g GID:新的GID;
10.2.4 gpasswd設置組密碼,可以讓某些用戶通過輸入組密碼臨時加入某個組;
命令格式:gpasswd [OPTION] GROUP
常用參數:
-a user:將user添加至指定組中
-d user:刪除用戶user的以當前組為組名的附加組;
-A user1,user2,……設置有管理權限的用戶列表;
newgrp命令:臨時切換基本組,如果用戶不屬于此組,則需要組密碼;
(1)、創建組distro,其GID為2016;
[root@localhost ~]# groupadd -g2016 distro
(2)、創建用戶mandriva, 其ID號為1005;基本組為distro;
[root@localhost ~]# useradd -g distro -u 1005 mandriva [root@localhost ~]# id mandriva uid=1005(mandriva) gid=2016(distro) 組=2016(distro)
(3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia [root@localhost ~]# ls /home 123 alex cc mandriva test xx 123456 arod centos nologin testbash zz 456 bash linux qq user1 789 basher lost+found ss vv
(4)、給用戶mageia添加密碼,密碼為mageedu;
[root@localhost ~]# echo 'mageedu' | passwd --stdin mageia 更改用戶 mageia 的密碼 。 passwd: 所有的身份驗證令牌已經成功更新。
(5)、刪除mandriva,但保留其家目錄;
[root@localhost ~]# userdel mandriva [root@localhost ~]# ls /home 123 alex cc mandriva test xx 123456 arod centos nologin testbash zz 456 bash linux qq user1 789 basher lost+found ss vv
(6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware [root@localhost ~]# id slackware uid=2002(slackware) gid=2016(distro) 組=2016(distro),2017(peguin)
(7)、修改slackware的默認shell為/bin/tcsh;
[root@localhost ~]# usermod -s /bin/tcsh slackware [root@localhost ~]# cat /etc/passwd | grep slackware slackware:x:2002:2016::/home/slackware:/bin/tcsh
(8)、為用戶slackware新增附加組admins;
[root@localhost ~]# usermod -a -G admins slackware [root@localhost ~]# id slackware uid=2002(slackware) gid=2016(distro) 組=2016(distro),2017(peguin),2018(admins)
(9)、為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天;
echo 'mageedu' | passwd --stdin slackware [root@localhost ~]# passwd -n 3 -x 180 -w 3 slackware 調整用戶密碼老化數據slackware。 passwd: 操作成功
(10)、添加用戶openstack,其ID號為3003, 基本組為clouds,附加組為peguin和nova;
[root@localhost ~]# useradd -u 3003 -g clouds -G peguin,nova openstack [root@localhost ~]# id openstack uid=3003(openstack) gid=2019(clouds) 組=2019(clouds),2017(peguin),2020(nova)
(11)、添加系統用戶mysql,要求其shell為/sbin/nologin;
[root@localhost ~]# useradd -r -s /sbin/nologin mysql [root@localhost ~]# id mysql uid=496(mysql) gid=492(mysql) 組=492(mysql)
(12)、使用echo命令,非交互式為openstack添加密碼。
[root@localhost ~]# echo 'mageedu' | passwd --stdin openstack更改用戶 openstack 的密碼 。 passwd: 所有的身份驗證令牌已經成功更新。
原創文章,作者:Net21_仲樂,如若轉載,請注明出處:http://www.www58058.com/23423
寫的很好,排版也很棒,可以來一點例子,加油
@馬哥教育:好的