一般来说系统是不会存在uid相同的用户,但是生产环境中,这是安全加固的一项,需要检测uid重复的项,并且删除,现脚本如下:
#!/bin/bash
##this script is for the ubuntu system##
not_succ=66
pass_file="/etc/passwd"
#1、系统安全加固#
#清除UID重复、用户名重复的用户
clean_duplicate(){
###检测文件是否存在###
[ ! -f $pass_file ] && echo “the file is missing!” && exit $not_succ
####备份密码文件#####
cp $pass_file{,.bak}
###处理uid一样的用户###
uid_same_list=`cat $pass_file|awk -F ":" '{print $3}'|sort -n|uniq -d`
echo "------------------"
echo $uid_same_list
echo "------------------"
for id in $uid_same_list;do
# name=`cat $pass_file|awk -F ":" '{print $1,$3}'|grep "$id" | awk 'NR>=2{print $1}'`
echo $id
name=`cat $pass_file|awk -F ":" '{print $1,$3}'|grep "$id" | awk 'NR>=2{print $1}'`
echo "$name"
# echo "+++++$name+++++"
for user in $name;do
echo "$user:x:$id"
sed -i "/^$user\:x\:$id/d" $pass_file
# echo $id $user
done
done
}
clean_duplicate
不足之处多多指正