1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
方法1: [root@zabbix ~]# who |awk '{print $1}'|sort -n|uniq monitor root 方法2: [root@zabbix ~]# who | cut -f1 -d' ' | sort -n | uniq monitor root
2、取出最后登录到当前系统的用户的相关信息。
a)使用id参数:
[root@zabbix ~]# id $(last |head -1|cut -d' ' -f1) uid=0(root) gid=0(root) groups=0(root) [root@zabbix ~]# id `last |head -1|cut -d' ' -f1` uid=0(root) gid=0(root) groups=0(root)
b)使用finger参数:
[root@zabbix ~]# finger `last |head -1|cut -d' ' -f1` Login: root Name: root Directory: /root Shell: /bin/bash On since Thu Jul 21 08:41 (CST) on pts/3 from 10.203.35.29 6 hours 2 minutes idle On since Thu Jul 21 14:37 (CST) on pts/6 from 10.203.35.43 3 seconds idle Mail last read Fri May 13 09:20 2016 (CST) No Plan. [root@zabbix ~]# finger $(last |head -1|cut -d' ' -f1) Login: root Name: root Directory: /root Shell: /bin/bash On since Thu Jul 21 08:41 (CST) on pts/3 from 10.203.35.29 6 hours 2 minutes idle On since Thu Jul 21 14:37 (CST) on pts/6 from 10.203.35.43 5 seconds idle Mail last read Fri May 13 09:20 2016 (CST) No Plan.
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
方法1: [root@zabbix ~]# cut -d: -f7 /etc/passwd |uniq -c|sort -n|tail -1|awk '{print $NF}' /sbin/nologin 方法2: awk -F ":" '{print $NF}' /etc/passwd|uniq -c|sort -n|tail -1|awk '{print $NF}'
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
[root@zabbix ~]# awk -F ":" '{print $3,$1}' /etc/passwd|sort -n|tail -10|tr 'a-z' 'A-Z' 1004 OPS 1005 WANLONG 1006 DPWANL 1007 ANSIBLE 1009 CURRY 1010 TEST 1011 LI4 1012 ADMIN 1013 MONITOR 65534 NFSNOBODY [root@zabbix ~]# awk -F ":" '{print $3,$1}' /etc/passwd|sort -n|tail -10|tr 'a-z' 'A-Z'|awk '{print $NF}' OPS WANLONG DPWANL ANSIBLE CURRY TEST LI4 ADMIN MONITOR NFSNOBODY [root@zabbix ~]# awk -F ":" '{print $3,$1}' /etc/passwd|sort -n|tail -10|tr 'a-z' 'A-Z'|awk '{print $NF}'>>/tmp/maxusers [root@zabbix ~]# cat /tmp/maxusers OPS WANLONG DPWANL ANSIBLE CURRY TEST LI4 ADMIN MONITOR NFSNOBODY
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
[root@zabbix ~]# ifconfig -a ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.203.12.88 netmask 255.255.255.0 broadcast 10.203.12.255 inet6 fe80::250:56ff:feb3:2253 prefixlen 64 scopeid 0x20<link> ether 00:50:56:b3:22:53 txqueuelen 1000 (Ethernet) RX packets 2988313622 bytes 2245793394283 (2.0 TiB) RX errors 0 dropped 65753 overruns 0 frame 0 TX packets 2481796858 bytes 1774760050740 (1.6 TiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 361836061 bytes 33616088795 (31.3 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 361836061 bytes 33616088795 (31.3 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@zabbix ~]# ifconfig -a|grep inet|grep -v inet6|grep -v 127.0.0.1|awk '{print $2}' 10.203.12.88 [root@zabbix ~]# ifconfig -a|grep broadcast|cut -d' ' -f10 10.203.12.88
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
[root@localhost ~]# ls /etc/*.conf | tr 'a-z' 'A-Z' >/tmp/etc.conf [root@localhost ~]# cat /tmp/etc.conf |tail -10 /ETC/NUMAD.CONF /ETC/ODDJOBD.CONF /ETC/PBM2PPA.CONF /ETC/PNM2PPA.CONF /ETC/RADVD.CONF /ETC/REQUEST-KEY.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/WVDIAL.CONF /ETC/YUM.CONF
7、显示/var目录下一级子目录或文件的总个数。
[root@localhost ~]# ls /var/ account cache db games gopher lib lock mail opt run tmp www adm crash empty gdm kerberos local log nis preserve spool var yp [root@localhost ~]# ls /var/ |wc -l 24
8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
[root@localhost ~]# cut -d: -f1,3 /etc/group | sort -t: -k2 -n | head -10 root:0 bin:1 daemon:2 sys:3 adm:4 tty:5 disk:6 lp:7 mem:8 kmem:9 [root@localhost ~]# cut -d: -f1,3 /etc/group | sort -t: -k2 -n | head -10 |cut -d: -f1 root bin daemon sys adm tty disk lp mem kmem [root@localhost ~]# awk -F ":" '{print $3,$1}' /etc/group|sort -n|head -10|awk '{print $NF}' 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 [root@localhost ~]# cat /tmp/etc.test # # /etc/fstab # Created by anaconda on Mon Sep 7 16:26:59 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=d9865b01-9c30-4f8a-8ce4-5700857e0c8b / xfs defaults 0 0 UUID=26fc1c6e-d8d2-4b34-9f73-b59957f32f84 /boot xfs defaults 0 0 UUID=fb00fa9b-653e-4dcb-aa7f-953bf5ea72da /home xfs defaults 0 0 UUID=dfc70797-325e-49e9-9e6c-13c98bb9b4d6 swap swap defaults 0 0 \S Kernel \r on an \m [root@localhost ~]# cat /etc/fstab |wc -l 12 [root@localhost ~]# cat /etc/issue|wc -l 3 [root@localhost ~]# cat /tmp/etc.test |wc -l 15
10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2016;
[root@localhost ~]# groupadd distro -g 2016 [root@localhost ~]# cat /etc/group|grep distro distro:x:2016:
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@localhost ~]# adduser mandriva -u 1005 -g distro [root@localhost ~]# id mandriva uid=1005(mandriva) gid=2016(distro) 组=2016(distro)
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@localhost ~]# adduser mageia -u 1100 -d /home/linux [root@localhost ~]# id mageia uid=1100(mageia) gid=1100(mageia) 组=1100(mageia) 注意finger参数可能默认没有安装,如果没有安装的话,直接使用yum -y install finger安装 [root@localhost ~]# finger mageia Login: mageia Name: Directory: /home/linux Shell: /bin/bash Never logged in. No mail. No Plan.
(4)、给用户mageia添加密码,密码为mageedu;
[root@localhost ~]# echo "mageedu"|passwd --stdin mageia 更改用户 mageia 的密码 。 passwd:所有的身份验证令牌已经成功更新。
(5)、删除mandriva,但保留其家目录;
[root@localhost ~]# userdel mandriva [root@localhost ~]# ls -l /home/mandriva/ 总用量 0
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@localhost ~]# groupadd peguin [root@localhost ~]# adduser slackware -u 2002 -g distro -G peguin
(7)、修改slackware的默认shell为/bin/tcsh;
方法1: [root@localhost ~]# su - slackware [slackware@localhost ~]$ chsh -s /bin/tcsh Changing shell for slackware. 密码: Shell changed. [slackware@localhost ~]$ cat /etc/passwd |grep slackware slackware:x:2002:2016::/home/slackware:/bin/tcsh 方法2: [root@localhost ~]# usermod slackware -s /bin/tcsh
(8)、为用户slackware新增附加组admins;
[root@localhost ~]# groupadd admins [root@localhost ~]# usermod slackware -G admins [root@localhost ~]# cat /etc/group | grep slackware admins:x:2018:slackware
(9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
[root@localhost ~]# passwd slackware -n 3 -x 180 -w 3 调整用户密码老化数据slackware。 passwd: 操作成功
(10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;
[root@localhost ~]# groupadd peguin [root@localhost ~]# groupadd nova [root@localhost ~]# groupadd clouds [root@localhost ~]# useradd openstack -u 3003 -g clouds -G peguin,nova [root@localhost ~]# id openstack uid=3003(openstack) gid=2020(clouds) 组=2020(clouds),2017(peguin),2019(nova)
(11)、添加系统用户mysql,要求其shell为/sbin/nologin;
[root@localhost ~]# adduser mysql -s /sbin/nologin [root@localhost ~]# id mysql uid=3004(mysql) gid=3004(mysql) 组=3004(mysql) [root@localhost ~]# grep mysql /etc/passwd mysql:x:3004:3004::/home/mysql:/sbin/nologin
(12)、使用echo命令,非交互式为openstack添加密码。
[root@localhost ~]# echo "openstack-passwd"|passwd --stdin openstack 更改用户 openstack 的密码 。 passwd:所有的身份验证令牌已经成功更新。
原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/25131
评论列表(1条)
写的很好,排版也很棒,加油