以下是修改后的Shell脚本,按照所需的输出格式输出不符合规范的用户信息:
#!/bin/bash
hostname=$(hostname)
# 获取所有可以登录的用户列表
users=$(cut -d: -f1 /etc/passwd)
# 遍历每个用户
for user in $users; do
# 获取用户的最大文件打开数限制
max_file_limit=$(sudo su - $user -c 'ulimit -n')
# 检查最大文件打开数是否小于2000
if [ $max_file_limit -lt 2000 ]; then
echo "$hostname,$user,当前最大文件打开数限制为:$max_file_limit"
fi
# 获取用户的最大进程数限制
max_process_limit=$(sudo su - $user -c 'ulimit -u')
# 检查最大进程数限制是否小于8192
if [ $max_process_limit -lt 8192 ]; then
echo "$hostname,$user,当前用户最大进程数限制为:$max_process_limit"
fi
done
请注意,在运行此脚本之前,请确保您具有足够的权限以及正确地安装了必要的工具(例如sudo
)。
#!/bin/bash
hostname=$(hostname)
# 获取所有可以登录的用户
users=$(getent passwd | awk -F: '{print $1}')
for user in $users; do
# 获取用户的最大文件打开数限制
max_files=$(su -c "ulimit -n" -s /bin/bash $user)
# 获取用户的最大进程数限制
max_processes=$(su -c "ulimit -u" -s /bin/bash $user)
if [ $max_files -lt 2000 ]; then
echo "$hostname,不符合规范用户名称:$user,当前最大文件打开数限制为了$max_files"
fi
if [ $max_processes -lt 8192 ]; then
echo "$hostname,不符合规范用户名称:$user,当前用户最大进程数限制为了$max_processes"
fi
done
标签:脚本,限制,检测,hostname,用户,limit,user,max
From: https://blog.51cto.com/u_12514160/8447466