#!/bin/bash
# 定义日志文件路径
LOG_FILE="/var/log/sysadmin_script.log"
# 函数:记录日志
log_message() {
local message="$1"
echo "$(date '+%Y-%m-%d %H:%M:%S') - $message" >> "$LOG_FILE"
}
# 函数:添加用户
add_user() {
local username="$1"
if id "$username" &>/dev/null; then
log_message "用户 $username 已存在"
echo "用户 $username 已存在"
else
useradd "$username"
if [ $? -eq 0 ]; then
log_message "成功添加用户 $username"
echo "成功添加用户 $username"
else
log_message "添加用户 $username 失败"
echo "添加用户 $username 失败"
fi
}
}
# 函数:删除用户
delete_user() {
local username="$1"
if id "$username" &>/dev/null; then
userdel -r "$username"
if [ $? -eq 0 ]; then
log_message "成功删除用户 $username"
echo "成功删除用户 $username"
else
log_message "删除用户 $username 失败"
echo "删除用户 $username 失败"
fi
else
log_message "用户 $username 不存在"
echo "用户 $username 不存在"
}
}
# 函数:设置用户权限
set_permissions() {
local username="$1"
local file_path="$2"
local permissions="$3"
if id "$username" &>/dev/null; then
chown "$username":"$username" "$file_path"
chmod "$permissions" "$file_path"
if [ $? -eq 0 ]; then
log_message "成功为用户 $username 设置文件 $file_path 的权限为 $permissions"
echo "成功为用户 $username 设置文件 $file_path 的权限为 $permissions"
else
log_message "为用户 $username 设置文件 $file_path 的权限失败"
echo "为用户 $username 设置文件 $file_path 的权限失败"
fi
else
log_message "用户 $username 不存在"
echo "用户 $username 不存在"
}
}
# 主程序
case "$1" in
adduser)
if [ -z "$2" ]; then
echo "用法: $0 adduser <用户名>"
log_message "缺少用户名参数"
else
add_user "$2"
fi
;;
deluser)
if [ -z "$2" ]; then
echo "用法: $0 deluser <用户名>"
log_message "缺少用户名参数"
else
delete_user "$2"
fi
;;
setperm)
if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]; then
echo "用法: $0 setperm <用户名> <文件路径> <权限>"
log_message "缺少用户名、文件路径或权限参数"
else
set_permissions "$2" "$3" "$4"
fi
;;
*)
echo "用法: $0 (adduser|deluser|setperm) [参数]"
log_message "无效的操作"
;;
esac