在linux 中如何判断当前用户是否是root?
分享下shell 脚本判断当前用户是否是root的方法。
脚本内容:
 
复制代码 代码示例:
#---------------------------- root user check ---------------------start     
if [ `id -u` -ne 0 ]; then    
    echo "Please re-run ${th
is_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