1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
[root@test ~]# who root tty1 2016-12-03 15:39 root pts/0 2016-12-16 17:00 (10.50.40.210) [root@test ~]# who |cut -d' ' -f1 |uniq root
2、取出最后登錄到當前系統的用戶的相關信息。
[root@test ~]# who root tty1 2016-12-03 15:39 root pts/0 2016-12-16 17:00 (10.50.40.210) [root@test ~]# who |tail -1 root pts/0 2016-12-16 17:00 (10.50.40.210)
3、取出當前系統上被用戶當作其默認shell的最多的那個shell。
[root@test ~]# cut -d: -f7 /etc/passwd | uniq -c | sort -n | tail -1 | grep -o "\/.*" /sbin/nologin [root@test ~]# cat /etc/passwd |cut -d : -f 7 |sort -n |uniq -c |sort -n |tail -1 24 /sbin/nologin [root@test ~]# cat /etc/passwd|awk -F: '{print $NF}'|sort|uniq -c|sort -rn -k 1|sed -n "1p"|awk '{print $2}' /sbin/nologin
4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
[root@test ~]# sort -t: -k3 -n /etc/passwd|tail -10|tr 'a-z' 'A-Z' JC:X:1001:1001::/HOME/JC:/BIN/BASH DOCKER:X:1003:1003::/HOME/DOCKER:/BIN/BASH OPENSTACK:X:3000:3000::/HOME/OPENSTACK:/BIN/BASH KEYSTONE:X:3001:3001::/HOME/KEYSTONE:/BIN/CSH TEST01:X:3002:3002::/HOME/TEST01:/BIN/RBASH USER1:X:3003:3003::/HOME/USER1:/BIN/BASH USER3:X:3004:3004::/HOME/USER3:/BIN/BASH ROOTKIT:X:3005:3005::/HOME/ROOTKIT:/BIN/BASH USER4:X:3006:3006::/HOME/USER4:/USR/SBIN/CHROOT CHROOTER:X:3007:3007::/HOME/CHROOTER:/BIN/BASH [root@test ~]# sort -t: -k3 -n /etc/passwd|tail -10|tr 'a-z' 'A-Z' >/tmp/maxusers.txt [root@test ~]# more /tmp/maxusers.txt JC:X:1001:1001::/HOME/JC:/BIN/BASH DOCKER:X:1003:1003::/HOME/DOCKER:/BIN/BASH OPENSTACK:X:3000:3000::/HOME/OPENSTACK:/BIN/BASH KEYSTONE:X:3001:3001::/HOME/KEYSTONE:/BIN/CSH TEST01:X:3002:3002::/HOME/TEST01:/BIN/RBASH USER1:X:3003:3003::/HOME/USER1:/BIN/BASH USER3:X:3004:3004::/HOME/USER3:/BIN/BASH ROOTKIT:X:3005:3005::/HOME/ROOTKIT:/BIN/BASH USER4:X:3006:3006::/HOME/USER4:/USR/SBIN/CHROOT CHROOTER:X:3007:3007::/HOME/CHROOTER:/BIN/BASH [root@test ~]#
5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
[root@test ~]# ifconfig eno16777984 | egrep broadcast inet 10.50.60.131 netmask 255.255.255.0 broadcast 10.50.60.255 [root@test ~]# ifconfig eno16777984 | egrep broadcast | cut -d' ' -f10 10.50.60.131
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
[root@test ~]# ls /etc/*.conf|tr 'a-z' 'A-Z' > /tmp/etc.conf [root@test ~]# more /tmp/etc.conf /ETC/ASOUND.CONF /ETC/CHRONY.CONF /ETC/DNSMASQ.CONF /ETC/DRACUT.CONF /ETC/E2FSCK.CONF /ETC/FPRINTD.CONF /ETC/HOST.CONF /ETC/KDUMP.CONF /ETC/KRB5.CONF /ETC/LD.SO.CONF /ETC/LIBAUDIT.CONF /ETC/LIBUSER.CONF /ETC/LOCALE.CONF /ETC/LOGROTATE.CONF /ETC/MAN_DB.CONF /ETC/MKE2FS.CONF /ETC/NSSWITCH.CONF /ETC/RESOLV.CONF /ETC/RSYNCD.CONF /ETC/RSYSLOG.CONF /ETC/SESTATUS.CONF /ETC/SOS.CONF /ETC/SUDO.CONF /ETC/SUDO-LDAP.CONF /ETC/SYSCTL.CONF /ETC/TCSD.CONF /ETC/UPDATEDB.CONF /ETC/USB_MODESWITCH.CONF /ETC/VCONSOLE.CONF /ETC/YUM.CONF
7、顯示/var目錄下一級子目錄或文件的總個數。
[root@test ~]# ls /var/ | wc -l 22
8、取出/etc/group文件中第三個字段數值最小的10個組的名字。
[root@test ~]# sort -t: -k3 -n /etc/group|head -10|cut -d: -f1
9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
[root@test ~]# cat /etc/fstab /etc/issue >/tmp/etc.test
10、請總結描述用戶和組管理類命令的使用方法并完成以下練習:
用戶的概念在此不表;每個用戶都有標示用戶的UID和密碼,用戶相關信息都存在`/etc/passwd`和`/etc/shadow`中,在創建用戶時,定義用戶參數的相關配置文件為`/etc/default/useradd`和`/etc/login.defs`。 用戶類別:超級用戶(root)、 普通用戶( 系統用戶、登錄用戶) 用戶標識:每個用戶都有一個唯一標示UID(0-65535) >超級用戶:0 系統用戶:1-499(CentOS6), 1-999(CentOS7) 登錄用戶:500-60000(CentOS6), 1000-60000(CentOS7) 如果要登錄創建的用戶,就必須先給設定密碼,使用命令passwd 用戶名,root用戶可以修改任何用戶密碼,普通用戶只能修改自己的密碼,passwd不接用戶名表示修改自己的密碼;存放密碼的相關文件`/etc/passwd`和`/etc/shadow`。 密碼的使用策略: 1、使用隨機密碼; 2、最短長度不要低于8位; 3、應該使用大寫字母、小寫字母、數字和標點符號四類字符中至少三類; 4、定期更換; /etc/passwd:用戶的信息庫 name:password:UID:GID:GECOS:directory:shell name: 用戶名 password:可以是加密的密碼,也可是占位符x; UID: GID:用戶所屬的主組的ID號; GECOS:注釋信息 directory:用戶的家目錄; shell:用戶的默認shell,登錄時默認shell程序; /etc/shadow:用戶密碼 用戶名:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期段:過期期限:保留字段 /etc/group:組的信息庫 group_name:password:GID:user_list user_list:該組的用戶成員;以此組為附加組的用戶的用戶列表; groupadd命令:添加組 groupadd [選項] group_name -g GID:指定GID;默認是上一個組的GID+1; -r: 創建系統組; groupmod命令:修改組屬性 groupmod [選項] GROUP -g GID:修改GID; -n new_name:修改組名; groupdel命令:刪除組 groupdel [選項] GROUP useradd命令:創建用戶 useradd [選項] 登錄名 -u, --uid UID:指定UID; -g, --gid GROUP:指定基本組ID,此組得事先存在; -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔; -c, --comment COMMENT:指明注釋信息; -d, --home HOME_DIR:以指定的路徑為用戶的家目錄;通過復制/etc/skel此目錄并重命名實現;指定的家目錄路徑如果事先存在,則不會為用戶復制環境配置文件; -s, --shell SHELL:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中; -r, --system:創建系統用戶; 注意:創建用戶時的諸多默認設定配置文件為/etc/login.defs useradd -D:顯示創建用戶的默認配置; useradd -D 選項: 修改默認選項的值; 修改的結果保存于/etc/default/useradd文件中; usermod命令:修改用戶屬性 usermod [選項] 登錄 -u, --uid UID:修改用戶的ID為此處指定的新UID; -g, --gid GROUP:修改用戶所屬的基本組; -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用戶所屬的附加組;原來的附加組會被覆蓋; -a, --append:與-G一同使用,用于為用戶追加新的附加組; -c, --comment COMMENT:修改注釋信息; -d, --home HOME_DIR:修改用戶的家目錄;用戶原有的文件不會被轉移至新位置; -m, --move-home:只能與-d選項一同使用,用于將原來的家目錄移動為新的家目錄; -l, --login NEW_LOGIN:修改用戶名; -s, --shell SHELL:修改用戶的默認shell; -L, --lock:鎖定用戶密碼;即在用戶原來的密碼字符串之前添加一個"!" -U, --unlock:解鎖用戶的密碼; userdel命令:刪除用戶 userdel [選項] 登錄 -r:刪除用戶時一并刪除其家目錄; passwd命令: passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] (1) passwd:修改用戶自己的密碼; (2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限; -l, -u:鎖定和解鎖用戶; -d:清除用戶密碼串; -e DATE: 過期期限,日期; -i DAYS:非活動期限; -n DAYS:密碼的最短使用期限; -x DAYS:密碼的最長使用期限; -w DAYS:警告期限; --stdin: echo "PASSWORD" | passwd --stdin USERNAME gpasswd命令: 組密碼文件:/etc/gshadow gpasswd [選項] group -a USERNAME:向組中添加用戶 -d USERNAME:從組中移除用戶 newgrp命令:臨時切換指定的組為基本組; newgrp [-] [group] -: 會模擬用戶重新登錄以實現重新初始化其工作環境; chage命令:更改用戶密碼過期信息 chage [選項] 登錄名 -d -E -W -m -M id命令:顯示用戶的真和有效ID; id [OPTION]... [USER] -u: 僅顯示有效的UID; -g: 僅顯示用戶的基本組ID; -G:僅顯示用戶所屬的所有組的ID; -n: 顯示名字而非ID; su命令:switch user 登錄式切換:會通過讀取目標用戶的配置文件來重新初始化 su - USERNAME su -l USERNAME 非登錄式切換:不會讀取目標用戶的配置文件進行初始化 su USERNAME 注意:管理員可無密碼切換至其它任何用戶; -c 'COMMAND':僅以指定用戶的身份運行此處指定的命令;
(1)、創建組distro,其GID為2016;
(2)、創建用戶mandriva, 其ID號為1005;基本組為distro;
(3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;
(4)、給用戶mageia添加密碼,密碼為mageedu;
(5)、刪除mandriva,但保留其家目錄;
[root@test ~]# userdel mandriva
(6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
(7)、修改slackware的默認shell為/bin/tcsh;
(8)、為用戶slackware新增附加組admins;
(9)、為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天;
(10)、添加用戶openstack,其ID號為3003, 基本組為clouds,附加組為peguin和nova;
[root@test ~]# groupadd clouds [root@test ~]# groupadd nova [root@test ~]# useradd openstack -u 3003 -g clouds -G peguin,nova [root@test ~]# id openstack uid=3003(openstack) gid=2018(clouds) groups=2018(clouds),1101(peguin),2019(nova)
(11)、添加系統用戶mysql,要求其shell為/sbin/nologin;
(12)、使用echo命令,非交互式為openstack添加密碼。
原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/63898