Shell脚本拒绝用户多次登录

时间:2015-10-26 23:01:11

标签: linux bash shell

我正在编写一个shell脚本,用于查找文件“/etc/user.deny”中的用户列表,如果多次遇到用户名,则程序会报告错误消息并退出。到目前为止,我有:

while read user 
do
   #something
done < ./etc/user.deny

如何比较每个人的每个用户名。有一种简单的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

如果您想要报告某个行多次显示,那么您可能只想单独使用awk 'seen[$0]++ {print "seen more than once: ", $0; exit}' file

seen[]

在数组print中,我们存储每行出现的次数。如果出现多次,则会触发exitGetSales语句。否则,它会默默地完成。

答案 1 :(得分:0)

我认为他想杀死所有重复登录

#!/bin/bash
#creat a sorted list
who -u | sort -k1,5 -r > userlogins.txt
#
user=""
olduser=""
# read userlist
cat userlogins.txt | while read line; do
# [0] of array is the username
# [1] is terminal
# [3] is login date
# [4] is PID
  user=($line)
#  echo ${user[0]}
#
# kill terminal if user has more than one login
  if [$olduser = ${user[0]}]; then
    echo ${user[0]} duplicate
    pkill -t ${user[1]}
  fi
# remember old user
  olduser="${user[0]}"
done

不幸的是,我目前无法测试此脚本。