首页 > 系统服务 > 详细

shell脚本输出/etc/passwd中shell类型对应的用户名及其个数

时间:2019-08-01 02:34:28      阅读:275      评论:0      收藏:0      [点我收藏+]
题目:显示linux系统中默认shell为bash、以及默认shell为/sbin/nologin的用户,显示出用户的个数,以及列出所有用户的名称
形如这样输出:
bash have 4 users,they are:,root,mandriva,openstack,scxiang
/sbin/nologin have 16 users,they are:,bin,daemon


#!/bin/bash
users=`wc -l /etc/passwd  | cut -d‘ ‘ -f1`                     
declare -i bashcount=0
declare -i nologincount=0
for i in `seq 1 $users`;do
        usershell=`head -$i /etc/passwd | tail -1 | cut -d: -f7 | cut -d‘/‘ -f3`
        if [ "$usershell" == "bash" ] ;then
                let bashcount+=1
                bash_array[$(($bashcount-1))]=`head -$i /etc/passwd | tail -1 | cut -d: -f1`
        elif [ "$usershell" == "nologin" ];then
                let nologincount+=1
                nologin_array[$(($nologincount-1))]=`head -$i /etc/passwd | tail -1 | cut -d: -f1`    
        else
                echo "other shell" &>/dev/null
        fi  
done
for x in ${bash_array[@]};do
        bashusers=$bashusers,$x
done  
echo "bash have $bashcount "users",they are:"$bashusers
for y in ${nologin_array[@]};do
        nologinusers=$nologinusers,$y
 done
echo "/sbin/nologin "have "$nologincount "users",they are:"$nologinusers

shell脚本输出/etc/passwd中shell类型对应的用户名及其个数

原文:https://blog.51cto.com/11342825/2425128

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!