馬哥教育網絡班21期+第3周課程練習
[TOC]
1. 列出當前系統上所有已經登錄的用戶的用戶名,注意:同一用戶登錄多次,則只顯示一次即可。
[root@zj-6-2 ~]# who root tty7 2016-04-24 02:22 (:0) root pts/1 2016-04-24 02:07 (192.168.101.1) root pts/2 2016-04-24 02:20 (192.168.101.1) root pts/0 2016-07-23 09:27 (192.168.101.253) root pts/3 2016-07-23 15:59 (192.168.101.253) zj pts/4 2016-07-23 16:19 (192.168.101.253) [root@zj-6-2 ~]# who | cut -d' ' -f1 | uniq | wc -l 2
2. 取出最后登錄到當前系統的用戶的相關信息。
[ies@zj-6-2 ~]$ who root tty7 2016-04-24 02:22 (:0) root pts/1 2016-04-24 02:07 (192.168.101.1) root pts/2 2016-04-24 02:20 (192.168.101.1) root pts/0 2016-07-23 09:27 (192.168.101.253) root pts/3 2016-07-23 15:59 (192.168.101.253) zj pts/4 2016-07-23 16:19 (192.168.101.253) ies pts/5 2016-07-23 16:24 (192.168.101.253) [ies@zj-6-2 ~]$ who | tail -1 ies pts/5 2016-07-23 16:24 (192.168.101.253) [ies@zj-6-2 ~]$ who | tail -1 | cut -d ' ' -f1 ies
3. 取出當前系統上被用戶當作其默認shell的最多的那個shell。
[root@zj-6-2 ~]# grep 'sh\>$' /etc/passwd | cut -d ':' -f7 | uniq -c | sort -n | tail -n 1 5 /bin/bash
4. 將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
[root@zj-6-2 ~]# sort -t ':' -k 3 -n /etc/passwd | tail -n 10 | tr [a-z] [A-Z] >> /tmp/maxusers.txt [root@zj-6-2 ~]# cat /tmp/maxusers.txt AVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGIN ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN PULSE:X:496:493:PULSEAUDIO SYSTEM DAEMON:/VAR/RUN/PULSE:/SBIN/NOLOGIN MEMCACHED:X:497:494:MEMCACHED DAEMON:/VAR/RUN/MEMCACHED:/SBIN/NOLOGIN SASLAUTH:X:498:76:"SASLAUTHD USER":/VAR/EMPTY/SASLAUTH:/SBIN/NOLOGIN RTKIT:X:499:496:REALTIMEKIT:/PROC:/SBIN/NOLOGIN DMDBA:X:500:500::/HOME/DMDBA:/BIN/BASH ZJ:X:501:501::/HOME/ZJ:/BIN/BASH IES:X:502:502::/HOME/IES:/BIN/TCSH NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN [root@zj-6-2 ~]#
5. 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
[root@zj-6-2 ~]# ifconfig | grep 'inet addr' | head -n 1 | cut -d ':' -f 2 | cut -d ' ' -f1 192.168.101.206 [root@zj-6-2 ~]# ifconfig | egrep -o 'addr:[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | head -1 | cut -d: -f2 192.168.101.206
6. 列出/etc目錄下所有以 .conf 結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
[root@zj-6-2 ~]# ls /etc/ | grep '\.conf$' | tr [a-z] [A-Z] > /tmp/etc.conf [root@zj-6-2 ~]# cat /tmp/etc.conf ANT.CONF ASOUND.CONF AUTOFS_LDAP_AUTH.CONF CAS.CONF CGCONFIG.CONF CGRULES.CONF CGSNAPSHOT_BLACKLIST.CONF DM_SVC.CONF DNSMASQ.CONF DRACUT.CONF ......
7. 顯示/var目錄下一級子目錄或文件的總個數。
[root@zj-6-2 ~]# ls /var/ | wc -l 23
8. 取出/ect/group文件中第三個字段數值最小的10個組的名字。
[root@zj-6-2 ~]# sort -t':' -k 3 -n /etc/group | head -n 10 | cut -d: -f1 root bin daemon sys adm tty disk lp mem kmem
9. 將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
[root@zj-6-2 ~]# cat /etc/fstab /etc/issue > /tmp/etc.test [root@zj-6-2 ~]# cat /tmp/etc.test # # /etc/fstab # Created by anaconda on Thu Aug 27 08:34:38 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=ca76697b-a614-40dc-bd18-fe9c9852bb6c / ext4 defaults 1 1 UUID=cc02b17a-b4b4-4231-b0b6-53654400fde5 /boot ext4 defaults 1 2 UUID=69878b6d-5169-4a0c-831f-a51f1c1274a8 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 Red Hat Enterprise Linux Server release 6.5 (Santiago) Kernel \r on an \m
10. 請總結描述用戶和組管理類命令的使用方法并完成以下練習:
用戶和組相關的管理類命令介紹
useradd : 用戶創建 -u UID:[UID_MIN,UID_MAX],定義在/etc/login.defs文件中 若不指定uid,則以現有最大uid為準,依次加1; -g GID: 指定用戶所屬基本組,可為組名,也可為GID,組名必須已經存在 -c "COMMENT": 添加用戶注釋信息; -d /PATH/TO/HOME_DIR: 指定用戶主目錄,指定的目錄最好不要事先存在。 -s: 指明用戶默認shell程序,可用shell列表在/etc/shells文件中 -G GROUP[,GROUP2,...[,GROUPN]]: 指明附加組,組必須已存在; -r: 創建系統用戶 CentOS 6: ID<500 CentOS 7: ID<1000 -D:修改useradd默認值,默認值設定:/etc/default/useradd 示例: useradd -D -s /bin/csh
groupadd : 組創建 group [OPTIONS]... group_name -g GID:指明GID號;[GID_MIN,GID_MAX],定義在/etc/login.defs文件中 -r: 創建系統組: CentOS 6: ID<500 CentOS 7: ID<1000 示例: groupadd -g 3000 test groupadd -r test groupadd -r -g 121 test
id:查看用戶相關的id信息 id [OPTIONS]... USER -u: UID -g: GID -G: 顯示所屬的所有組 -n: NAME,顯示名稱而不是id號 示例: [root@zj-6-2 ~]# id slackware uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin),2018(admins)
su:切換用戶或以其他用戶身份執行命令; su [OPTION]... [-] [USER [ARG]...] 切換用戶的方式: su USERNAME:非登錄式切換,不會讀取目標用戶的配置文件; su - USERNAME:登錄式切換,讀取用戶的配置文件,完全切換; Note; root su至其他用戶無需密碼;非root用戶切換時需要密碼; 換個身份執行命令: su [-] username -c "COMMANDS" 選項: -l :su -l username 相當于 su - username
usermod : 用戶屬性修改 usermod [OPTIONS]... username -u UID: 新UID -g GID: 新GID -G GROUP[,GROUP2,...[,GROUPN]]: 新附加組,原來的附加組會被覆蓋,若要保留原有, 需使用 -a選項,表示追加;usermod -a -G GROUP1,GROUP2.. -s SHELL: 新的SHELL; -c 'COMMENT': 新的注釋信息; -d HOME_DIR: 指定新的家目錄;新的家目錄不會自動創建,原有家目錄中的文件也不會同時移動至新 的家目錄,若要移動,則同時使用-m選項; usermod -d HOME_DIR -m username Note : 使用-d指定新的家目錄時,若不使用-m選項,登陸時系統會報錯。 -l login_name: 指定新名字; 示例: 將test用戶名修改為zzz [root@zj-5-2 ~]# usermod -l zzz test [root@zj-5-2 ~]# su - test su: 用戶 test 不存在 [root@zj-5-2 ~]# su - zzz -L:鎖定指定用戶,passwd文件中密碼前加!號; -U:解鎖指定用戶 -e YYYY-MM-DD: 指明用戶賬號過期日期; -f INACTIVE: 設定非活躍期限;
passwd : 設置用戶密碼 passwd [OPTIONS]... USERNAME:修改指定用戶的密碼,僅root用戶有權限; passwd:修改自己的密碼; -l:鎖定指定用戶,passwd文件中密碼前加; -u: 解鎖用戶; -n mindays: 指定最短使用期限 -x maxdays: 指定最大使用期限 -w warndays: 提前多少天開始警告 -i inactivedays: 非活動期限:即密碼過期后還可使用多少天 --stdin:從標準輸入接收用戶密碼: echo "PASSWD" | passwd --stdin USERNAME
userdel : 刪除用戶 userdel [OPTIONS]... username -r:刪除用戶家目錄;
groupmod :組屬性修改 groupmod [OPTIONS]... GROUP -n group_name: 新組名 -g GID:新的GID;
groupdel : 刪除組 groupdel GROUP_NAME
gpasswd : 組密碼設置 gpasswd [OPTIONS] group gpasswd oinstall,密碼在/etc/gshadow文件中; -a USER GROUP: 將USER添加到指定組中 -d USER GROUP:刪除用戶user的以當前組為組名的附加組 -A user1,user2,..:設置有管理權限的用戶列表。 newgrp group_name : 臨時切換屬組 如果用戶本不屬于此組,則需要組密碼;
pwck - verify integrity of password files SYNOPSIS pwck [-q] [-s] [passwd [ shadow ]] pwck [-q] [-r] [passwd [ shadow ]]
chage : 修改密碼過期信息 NAME chage - change user password expiry information SYNOPSIS chage [options] [LOGIN] Options: -d, --lastday LAST_DAY set date of last password change to LAST_DAY -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE -h, --help display this help message and exit -I, --inactive INACTIVE set password inactive after expiration to INACTIVE -l, --list show account aging information -m, --mindays MIN_DAYS set minimum number of days before password change to MIN_DAYS -M, --maxdays MAX_DAYS set maximim number of days before password change to MAX_DAYS -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
其他命令:chfn,chsh,finger chfn USERNAME:修改注釋信息;相當于usermod -c chsh:修改默認shell finger USERNAME:查看用戶注釋信息;
### (1). 創建組*distro*,其*GID*為*2016*;
[root@zj-6-2 ~]# groupadd -g 2016 distro [root@zj-6-2 ~]# grep 'distro' /etc/group distro:x:2016:
(2). 創建用戶mandriva,其ID號為1005;基本組為distro;
[root@zj-6-2 ~]# useradd -u 1105 -g distro magedriva [root@zj-6-2 ~]# id magedriva uid=1105(magedriva) gid=2016(distro) 組=2016(distro)
(3). 創建用戶mageia,其ID號為1100,家目錄為/home/linux;
[root@zj-6-2 ~]# useradd -u 1100 -d /home/linux mageia [root@zj-6-2 ~]# id mageia uid=1100(mageia) gid=1100(mageia) 組=1100(mageia) [root@zj-6-2 ~]# grep 'mageia' /etc/passwd mageia:x:1100:1100::/home/linux:/bin/bash
(4). 給用戶mageia添加密碼,密碼為mageedu;
方法一: [root@zj-6-2 ~]# echo "mageedu" | passwd --stdin mageia 更改用戶 mageia 的密碼 。 passwd: 所有的身份驗證令牌已經成功更新。 方法二: [root@zj-6-2 ~]# passwd mageia 更改用戶 mageia 的密碼 。 新的 密碼:
(5). 刪除mandriva,但保留其家目錄;
[root@zj-6-2 ~]# userdel magedriva [root@zj-6-2 ~]# ls -ld /home/magedriva/ drwx------. 4 1105 distro 4096 7月 23 17:16 /home/magedriva/
(6). 創建用戶slackware,其ID號為2022,基本組為distro,附加組為peguin;
[root@zj-6-2 ~]# groupadd peguin [root@zj-6-2 ~]# useradd -u 2022 -g distro -G peguin slackware [root@zj-6-2 ~]# id slackware uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin)
(7). 修改slackware的默認shell為/bin/tcsh;
[root@zj-6-2 ~]# grep 'slackware' /etc/passwd slackware:x:2022:2016::/home/slackware:/bin/bash [root@zj-6-2 ~]# [root@zj-6-2 ~]# usermod -s /bin/tcsh slackware [root@zj-6-2 ~]# grep 'slackware' /etc/passwd slackware:x:2022:2016::/home/slackware:/bin/tcsh
(8). 為用戶slackware新增附加組admins;
[root@zj-6-2 ~]# id slackware uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin) [root@zj-6-2 ~]# groupadd admins [root@zj-6-2 ~]# usermod -a -G admins slackware [root@zj-6-2 ~]# id slackware uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin),2018(admins)
usermod -G GROUP[,GROUP2,…[,GROUPN]]: 新附加組,原來的附加組會被覆蓋,若要保留原有附加組,需使用 -a選項,表示追加;
usermod -a -G GROUP1,GROUP2..
(9). 為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天;
passwd -n 3 -x 180 -w 3 slackware
(10). 添加用戶openstack,其ID號為3003,基本組為clouds,附加組為peguin和nova;
[root@zj-6-2 ~]# groupadd clouds [root@zj-6-2 ~]# groupadd nova [root@zj-6-2 ~]# useradd -u 3003 -g clouds -G peguin,nova openstack [root@zj-6-2 ~]# id openstack uid=3003(openstack) gid=2019(clouds) 組=2019(clouds),2017(peguin),2020(nova)
(11). 添加系統用戶mysql,要求其shell為/bin/nologin;
[root@zj-6-2 ~]# useradd -r -s /bin/nologin mysql
(12). 使用echo
命令,非交互式為openstack添加密碼;
[root@zj-6-2 ~]# echo 'mageedu' | passwd --stdin openstack 更改用戶 openstack 的密碼 。 passwd: 所有的身份驗證令牌已經成功更新。
原創文章,作者:N21_未來人,如若轉載,請注明出處:http://www.www58058.com/25583
寫的很好,排版也很棒,加油