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

#!/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 #############判断结束############
时间: 2024-11-05 12:25:20

判断用户的用户名和其基本组的组名是否一致的相关文章

java应用程序中判断用户输入的一个整数是否在已知数组里。

import java.util.*; class Example2_5 { public static void main(String args[]) { int start=0,end,middle; int a[] = {12,45,67,89,123,-45,67}; int N = a.length; for(int i=0; i<N; i++) { //选择法排序数组 for(int j = i+1; j < N;j++){ if(a[j] < a[i]){ int t =

SharePoint 判断用户是否在字段&quot;人员和组&quot;里面

两个自己平时写的方法,记录下来,方便以后查找使用: 1.判断用户是否在字段人员和组里面: public static bool IsUserInFiled(int UserID, string ListName, int ItemID, string FieldInterName) { bool value = false; try { using (SPSite site = new SPSite(SITERUL)) { using (SPWeb web = site.OpenWeb()) {

sharepoint 判断用户是否存在某个组中三种方法

1.思路:查找用户所有的组来匹配是否在特定的组(推荐) 不用担心组不存在而报错. public static bool IsUserMemberOfGroup(SPUser user, string groupName) { bool result = false; if (!String.IsNullOrEmpty(groupName) && user != null) { foreach (SPGroup group in user.Groups) { if (group.Name =

添加30个用户,用户名形式stdxx,其中xx从01到30

#!/bin/bash # 设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户, # 用户名的形式为stdxx,其中xx从01到30 for i in $(seq -w 01 30) do useradd -g class1 std$i done 解释说明: seq -w 可以让序列的数字都是两位数

alertDialog创建登陆界面,判断用户输入

alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: 1 public boolean onOptionsItemSelected(MenuItem item) { 2 // TODO Auto-generated method stub 3 switch(item.getItemId()){ 4 case 1: 5 Intent intent = new Intent(); 6

怎样判断用户是否在线

1.写后台线程,心跳机制等判断用户是否在线. 2.利用session 每次用户登录会产生一个session 因为考虑到一台电脑多个浏览器之间session不共享也就是可能会形成这样一个概念,你的同一个用户名在服务器中打开了两个不同版本的浏览器因此保存了2个session,也就造成了不准确的因素所以你可以采用一张专门登录的数据库表格,字段不用多 保存登录的用户名就行,然后javaweb中有session的监听接口HttpSessionBindingListener,这个接口包含的两个方法分别会在每

判断用户是否存在,类型是否为管理员

输入一个用户名,判断该用户是admin用户或者普通用户 由于管理员用户id是1-500,而普通用户是501以上 [[email protected] ~]# vim /tmp/uidex.sh #!/bin/bash username=$1 if [ "$username" = "" ];then         echo "Please input a username"         exit 1 fi if id $username &a

【shell脚本练习】判断用户存在和用户类型

题目 写一个脚本 1. 传递一个参数给脚本,此参数为用户名: 2. 如果用户存在,则执行如下任务 * 如果用户的id号小于500,显示其为管理员或系统用户: * 否则,显示其为普通用户: 3. 如果用户不存在,则添加之: 解答 #!/bin/bash username=$1 if [ "$username" = "" ]; then echo "please input a username" exit 1 fi if id $username

判断用户和密码

判断用户和密码 如果输入一个值则直接报错 Console.WriteLine("请输入用户名和密码"); string one = Console.ReadLine(); //获取了当前的数据 string two = Convert.ToString(one); int cons=two.IndexOf(" "); if (cons > 0) { string var1 = two.Substring(0, cons); string var2 = two.