使用bash批量删除SFTP用户
2023/12/01 14:14 投稿
这个脚本的目的是通过读取用户列表文件(/home/user_list.txt
),自动移除SFTP用户并清理相关配置。脚本通过循环读取用户列表中的每一行,提取用户名,并执行删除用户以及其主目录,以及删除sshd_config中的配置。
注:部分语法经过调整,以适应cgi-bin的web运行上的显示需求,但这些调整不会影响脚本的功能。
#!/bin/bash
USER_LIST="/home/user_list.txt"
SSHD_CONFIG="/etc/ssh/sshd_config"
function remove_all_users() {
echo "Content-type: text/plain"
echo
while read -r line; do
username=$(echo "$line" | awk '{print $1}')
sudo userdel -r "$username"
sudo rm -rf "/home/$username/"
sudo sed -i "/^Match User $username/,/^ForceCommand internal-sftp/d" "$SSHD_CONFIG"
echo "User $username removed."
done < "$USER_LIST"
sudo systemctl restart sshd
sudo systemctl reset-failed sshd.service # Reset failed count
sudo systemctl restart sshd
echo "All users removed successfully."
}
remove_all_users