5.17练习

1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来

  • 过滤掉/passwd文件中带/sbin/nologin的行
    getent passwd |grep -v /sbin/nologin

  • 以:为分隔符,显示第一列用户名
    getent passwd |grep -v /sbin/nologin |cut -d: -f1

  • 统计用户数量
    getent passwd |grep -v /sbin/nologin |cut -d: -f1 -n |wc -l

[09:52:06 root@bogon data]#getent passwd |grep -v /sbin/nologin 
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
wangd:x:1000:1000:wangd:/home/wangd:/bin/bash
nginx:x:1001:1002::/home/nginx:/bin/bash
varnish:x:1002:1003::/home/varnish:/bin/bash
rooter:x:0:1006::/home/rooter:/bin/bash
alice:x:1003:1008::/home/alice:/bin/bash
tom:x:1004:1007::/home/tom:/bin/bash
jack:x:1234:1007::/home/jack:/bin/bash
rose:x:1006:100::/home/rose:/bin/bash
mysql:x:987:981::/home/mysql:/bin/bash
u1:x:1007:1012::/data/u1home:/bin/bash
apache:x:986:980::/home/apache:/bin/bash
u2:x:1008:1013::/home/u2:/sbin/bash
mageia:x:1100:1100::/home/linux:/bin/bash
slackware:x:2002:2019::/home/slackware:/bin/tcsh
[10:39:45 root@bogon data]#getent passwd |grep -v /sbin/nologin |cut -d: -f1
root
sync
shutdown
halt
wangd
nginx
varnish
rooter
alice
tom
jack
rose
mysql
u1
apache
u2
mageia
slackware
[10:46:57 root@bogon data]#getent passwd |grep -v /sbin/nologin |cut -d: -f1 -n |wc -l
18

2、查出用户UID最大值的用户名、UID及shell类型

[09:25:22 root@bogon ~]#getent passwd | sort -t: -k3 -nr  以:为分隔符,取第三列按数字顺序排列
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
slackware:x:2002:2019::/home/slackware:/bin/tcsh
jack:x:1234:1007::/home/jack:/bin/bash
mageia:x:1100:1100::/home/linux:/bin/bash
u2:x:1008:1013::/home/u2:/sbin/bash
u1:x:1007:1012::/data/u1home:/bin/bash
rose:x:1006:100::/home/rose:/bin/bash
tom:x:1004:1007::/home/tom:/bin/bash
alice:x:1003:1008::/home/alice:/bin/bash
varnish:x:1002:1003::/home/varnish:/bin/bash
nginx:x:1001:1002::/home/nginx:/bin/bash
wangd:x:1000:1000:wangd:/home/wangd:/bin/bash
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sssd:x:998:995:User for sssd:/:/sbin/nologin
libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
gluster:x:995:992:GlusterFS daemons:/run/gluster:/sbin/nologin
saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
unbound:x:991:988:Unbound DNS resolver:/etc/unbound:/sbin/nologin
geoclue:x:990:986:User for geoclue:/var/lib/geoclue:/sbin/nologin
saned:x:989:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin
mysql:x:987:981::/home/mysql:/bin/bash
apache:x:986:980::/home/apache:/bin/bash
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
rooter:x:0:1006::/home/rooter:/bin/bash
[09:25:27 root@bogon ~]#getent passwd | sort -t: -k3 -nr | head -n1
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[09:25:33 root@bogon ~]#getent passwd | sort -t: -k3 -nr | head -n1 |cut -d: -f1,3,7
nfsnobody:65534:/sbin/nologin

3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

[23:48:09 root@bogon ~]#netstat -nt | tr -s " " : |cut -d: -f6 |sort |uniq -c | sort -nr
      1 Foreign
      1 192.168.45.100
      1 192.168.45.1

4、编写脚本 createuser.sh 实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息

11 #********************************************************************
 12 read -p "Please input your name: " NAME
 13 if id -u $NAME &> /dev/null ;then
 14     echo "$NAME already exists"
 15 else
 16     useradd $NAME && id $NAME
 17 fi                                                                                                 

[00:42:31 root@bogon ~]#bash createuser.sh
Please input your name: root
root already exists
[00:42:35 root@bogon ~]#bash createuser.sh
Please input your name: test
uid=2003(test) gid=2003(test) groups=2003(test)

~

5、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等

  1 set number
  2 set tabstop=4
  3 set ignorecase
  4 set cursorline
  5 set autoindent
  6 autocmd BufNewFile *.sh exec ":call SetTitle()"
  7 func SetTitle()
  8     if expand("%:e") == 'sh'
  9     call setline(1,"#!/bin/bash")
 10     call setline(2,"#")
 11     call setline(3,"#********************************************************************")
 12     call setline(4,"#Author:        wangd")
 13     call setline(5,"#QQ:            132456798")
 14     call setline(6,"#Date:          ".strftime("%Y-%m-%d"))
 15     call setline(7,"#FileName:     ".expand("%"))
 16     call setline(8,"#version:           3.1")                                                      
 17     call setline(9,"#Description:      The test script")
 18     call setline(10,"#Copyright (C):    ".strftime("%Y")." All rights reserved")
 19     call setline(11,"#********************************************************************")
 20     call setline(12,"")
 21     endif
 22 endfunc
 23 autocmd BufNewFile * normal G
  1 #!/bin/bash
  2 #
  3 #********************************************************************
  4 #Author:        wangd
  5 #QQ:            123456789
  6 #Date:          2020-05-17
  7 #FileName:     f1.sh
  8 #version:           3.1
  9 #Description:      The test script
 10 #Copyright (C):     2020 All rights reserved
 11 #********************************************************************      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值