判断用户的用户名和其基本组的组名是否一致

#!/bin/bash

#传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来

#判断是否传递一个参数
if [ ! $# -eq 1 ]; then
  echo "Usage:./group.sh ARG"
  exit 1
fi

#判断是否存在该用户
id $1 &> /dev/null
if [ ! $? -eq 0 ]; then
  echo "$1 not exits."
  exit 1
fi

#取给定用户所属基本组id
USERID=`id $1 | cut -d' ' -f3 | cut -d= -f2 | cut -d'(' -f1`
#取出组名称
GROUPNAME=`grep ".*:.*:$USERID:.*" /etc/group | cut -d: -f1`

#判断用户名和组名是否一致
if [ $1 = $GROUPNAME ]; then
  echo "UserName equals GroupName."
else
  echo "UserName not equals GroupName."
fi
#############判断结束############

 

 

优化:

 1 #!/bin/bash
 2 
 3 #传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来
 4 
 5 #判断是否传递一个参数
 6 if [ ! $# -eq 1 ]; then
 7   echo "Usage:./group.sh ARG"
 8   exit 1
 9 fi
10 
11 #判断是否存在该用户
12 #id $1 &> /dev/null
13 if ! id $1 &> /dev/null; then
14   echo "$1 not exits."
15   exit 1
16 fi
17 
18 #取给定用户所属基本组id
19 #USERID=`id $1 | cut -d' ' -f3 | cut -d= -f2 | cut -d'(' -f1`
20 #取出组名称
21 #GROUPNAME=`grep ".*:.*:$USERID:.*" /etc/group | cut -d: -f1`
22 
23 #判断用户名和组名是否一致
24 if [ `id -u -n $1` == `id -g -n $1` ]; then
25   echo "UserName equals GroupName."
26 else
27   echo "UserName not equals GroupName."
28 fi
29 #############判断结束############

 

转载于:https://www.cnblogs.com/jjzd/p/5770459.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值