linux shell判断当前用户属性的方法

发布时间:2020-09-09编辑:脚本学堂
本文介绍了linux shell中判断当前用户属性的方法,比如判断用户是否为root用户等,有需要的朋友参考下。

linux 中如何判断当前用户是否是root?

分享下shell 脚本判断当前用户是否是root的方法。

脚本内容:
 

复制代码 代码示例:
#---------------------------- root user check ---------------------start    
if [ `id -u` -ne 0 ]; then   
    echo "Please re-run ${this_file} as root."   
    exit 1    
fi    
#---------------------------- root user check ---------------------end   
  
if [ x"$USER" = x"" ];then   
    if  id |grep "^uid=0(root)">/dev/null ;then   
        :    
    else   
        echo "Please rerun `basename $0` as root ."   
        exit 1    
    fi    
else   
    if [ ! x"$USER" = x"root" ];then   
        echo "Please rerun `basename $0` as root ."   
        exit 1    
    fi    
fi   
  
#=============== check current user start ================    
if [ ! $USER = root  ];then   
    echo "Please rerun this script as root ."   
    exit 1    
fi    
#=============== check current user end ================

代码2:
 

复制代码 代码示例:
#!/bin/sh    
if  id |grep "^uid=0(root)">/dev/null ;then   
    echo is  root    
else   
    echo not  root    
fi    
  
check_user(){    
    if [ $UID -ne 0 ];then   
        echo "Current user is not ROOT."   
        echo "Please rerun the installer as Root user."   
        exit 11    
    fi    
}     
 

例3,在linux系统中列出当前系统下的所有用户,(www.jb200.com)就像windows下的net user一样
 

复制代码 代码示例:
awk -F":" '{print $1}' /etc/passwd

以上列出所有的用户。

如果要列出创建的用户(id >=500) :
 

复制代码 代码示例:
awk -F":" '($3>=500 && $3<65534){print $1}' /etc/passwd

例子:
 

复制代码 代码示例:
[root@localhost ~]# awk -F":" '($3>=500 && $3<65534){print $1}' /etc/passwd
whuang
oracle
kingbase
xrxiong
huangwei
kingbase2
user2
nagios
abca
abc
user1