Linux系统利用bash脚本设置Samba服务器管理功能
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
这个Samba管理工具脚本提供了全面的 Samba服务器管理功能,主要包括以下几个核心模块:
1、权限管理:自动检测并以 root 权限运行,确保所有管理操作具备足够权限
2、用户管理功能:
系统用户管理:支持添加非登录系统用户、删除用户及修改用户密码
Samba 用户管理:可将已有系统用户添加为 Samba 用户,支持删除 Samba 用户和修改其密码
智能显示用户列表:自动过滤系统内置用户,只显示有效用户
3、共享设置功能:
向导式创建新共享:引导用户设置共享名、描述、路径、访问权限等
支持细粒度权限控制:可指定有效访问用户、可写用户,以及游客访问权限
自动创建共享目录并设置合适权限
提供配置确认步骤,支持中途取消操作
支持手动编辑 smb.conf 配置文件
4、服务管理功能:
基础服务控制:启动、停止、重启 Samba 服务
配置重载:不中断服务的情况下重新加载配置
开机自启管理:设置或禁用 Samba 服务开机自动启动
服务状态查看:显示 Samba 服务当前运行状态及详细信息
5、辅助功能:
配置文件自动备份:修改配置前自动创建带时间戳的备份
操作指引:清晰的菜单导航和输入提示
错误处理:提供明确的错误提示和操作建议
随机激励语句:增加用户体验的友好设计
bash脚本20250818下载地址:
正确食用方式:直接保存下面bash脚本,给予权限直接运行即可!
#!/bin/bash # 颜色定义 - 移除了黄色,增加了亮红色用于菜单 RED='\033[0;31m' LIGHT_RED='\033[1;31m' # 亮红色用于菜单选项 GREEN='\033[0;32m' BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' # 无颜色 # 自动以root权限重新运行脚本 if [ "$(id -u)" -ne 0 ]; then echo echo -e "${BLUE}================ Samba 管理工具 ==================${NC}" echo -e "${LIGHT_RED}一. 系统用户管理${NC}" echo -e "${LIGHT_RED}二. Samba用户管理${NC}" echo -e "${LIGHT_RED}三. Samba共享设置${NC}" echo -e "${LIGHT_RED}四. Samba服务管理${NC}" echo -e "${LIGHT_RED}五. 退出脚本${NC}" echo -e "${BLUE}=========================================================${NC}" echo "需要root权限,请输入系统登录密码..." if command -v sudo &>/dev/null; then sudo "$0" "$@" exit $? elif command -v su &>/dev/null; then su -c "$0 $*" exit $? else echo -e "${RED}错误:无法获取root权限,请手动使用sudo或切换到root用户运行。${NC}" >&2 exit 1 fi fi # 定义激励语句数组 motivational_quotes=( "成功来自于日复一日的努力,而非一时的热情。" "今天的小步,明天的飞跃。" "相信自己,你比想象中更强大。" "困难是暂时的,坚持是永恒的。" "每一个专家都曾是初学者。" "行动是治愈恐惧的良药,犹豫会不断滋养恐惧。" "不要等待机会,而要创造机会。" "伟大的作品不是靠力量,而是靠坚持来完成的。" "你今天的选择,决定了你明天的样子。" "挑战自己,突破极限,你会发现全新的自己。" "【提示】samba用户首先要是系统用户by糖糖。" ) # 随机选择一句激励语句 get_random_quote() { local index=$(( RANDOM % ${#motivational_quotes[@]} )) echo "${motivational_quotes[$index]}" } # 定义要排除的系统用户 EXCLUDED_USERS=$(cat << 'EOF' daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody _apt messagebus systemd-timesync systemd-network systemd-resolve tcpdump syslog avahi-autoipd dnsmasq strongswan cups-pk-helper lightdm sshd xrdp avahi pulse saned hplip nvidia-persistenced sssd uuidd systemd-coredump EOF ) # 获取当前登录用户 CURRENT_USER=$(logname) CURRENT_GROUP=$(id -g -n "$CURRENT_USER") # 显示系统用户列表 show_system_users() { echo -n -e "${CYAN}系统用户列表: ${NC}" # 创建临时文件存储排除用户 EXCLUDE_FILE=$(mktemp) echo "$EXCLUDED_USERS" > "$EXCLUDE_FILE" # 创建临时文件存储所有系统用户 ALL_USERS=$(mktemp) cut -d: -f1 /etc/passwd > "$ALL_USERS" # 使用comm命令找出不在排除列表中的用户 users=$(comm -23 <(sort "$ALL_USERS") <(sort "$EXCLUDE_FILE") | tr '\n' ',' | sed -e 's/,$//' -e 's/,,/,/g') # 清理临时文件 rm "$EXCLUDE_FILE" "$ALL_USERS" # 显示结果 echo "$users" } # 显示Samba用户列表 show_samba_users() { echo -n -e "${CYAN}Samba用户列表: ${NC}" if command -v pdbedit &>/dev/null; then if pdbedit -L &>/dev/null; then local samba_users=$(pdbedit -L | cut -d: -f1 | tr '\n' ',' | sed 's/,$//') if [ -n "$samba_users" ]; then echo "$samba_users" else echo "无Samba用户" fi else echo "无Samba用户" fi else echo -e "${RED}未安装Samba用户管理工具(pdbedit)${NC}" fi } # 主菜单(使用小写数字) main_menu() { clear # 显示随机激励语句 echo -e "${GREEN}=========================================================${NC}" echo -e "${RED}【$(date +"%Y-%m-%d %H:%M:%S")】 ${NC}$(get_random_quote)" echo -e "${GREEN}=========================================================${NC}" echo echo -e "${BLUE}===================== Samba 管理工具 =====================${NC}" echo -e "${LIGHT_RED}一. 系统用户管理${NC}" echo -e "${LIGHT_RED}二. Samba用户管理${NC}" echo -e "${LIGHT_RED}三. Samba共享设置${NC}" echo -e "${LIGHT_RED}四. Samba服务管理${NC}" echo -e "${LIGHT_RED}五. 退出脚本${NC}" echo -e "${BLUE}=========================================================${NC}" read -p "请选择操作 [1-5]: " choice case $choice in 1) system_user_menu ;; 2) samba_user_menu ;; 3) samba_share_menu ;; 4) samba_service_menu ;; 5) echo "感谢使用,退出脚本。"; exit 0 ;; *) echo -e "${RED}无效选择,请重试。${NC}"; sleep 2; main_menu ;; esac } # 系统用户管理子菜单(使用小写数字) system_user_menu() { clear echo -e "${BLUE}===================== 系统用户管理 =======================${NC}" show_system_users echo show_samba_users echo -e "${BLUE}---------------------------------------------------------${NC}" echo -e "${LIGHT_RED}1. 增加系统用户${NC}" echo -e "${LIGHT_RED}2. 删除系统用户${NC}" echo -e "${LIGHT_RED}3. 修改用户密码${NC}" echo -e "${LIGHT_RED}4. 退出脚本${NC}" echo -e "${LIGHT_RED}5. 返回主菜单${NC}" echo -e "${BLUE}=========================================================${NC}" read -p "请选择操作 [1-5]: " choice case $choice in 1) add_system_user ;; 2) delete_system_user ;; 3) modify_system_user_password ;; 4) echo "感谢使用,退出脚本。"; exit 0 ;; 5) main_menu ;; *) echo -e "${RED}无效选择,请重试。${NC}"; sleep 2; system_user_menu ;; esac } # 增加系统用户(默认创建非登录用户) add_system_user() { echo "默认创建非登录用户" read -p "请输入要添加的用户名: " username if id "$username" &>/dev/null; then echo -e "${RED}错误: 用户 $username 已存在。${NC}" read -p "按任意键继续..." system_user_menu return fi # 创建非登录用户:使用-nologin shell,不创建家目录 useradd -M -s /usr/sbin/nologin "$username" if [ $? -eq 0 ]; then echo -e "${GREEN}非登录用户 $username 创建成功。${NC}" # 虽然是非登录用户,仍可设置密码(用于Samba验证) passwd "$username" else echo -e "${RED}创建用户 $username 失败。${NC}" fi read -p "按任意键返回系统用户管理菜单..." system_user_menu } # 删除系统用户 delete_system_user() { read -p "请输入要删除的用户名: " username if ! id "$username" &>/dev/null; then echo -e "${RED}错误: 用户 $username 不存在。${NC}" read -p "按任意键继续..." system_user_menu return fi read -p "确定要删除用户 $username 吗? [y/N] " confirm if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then userdel -r "$username" if [ $? -eq 0 ]; then echo -e "${GREEN}用户 $username 已成功删除。${NC}" else echo -e "${RED}删除用户 $username 失败。${NC}" fi else echo "已取消删除操作。" fi read -p "按任意键返回系统用户管理菜单..." system_user_menu } # 修改系统用户密码 modify_system_user_password() { read -p "请输入要修改密码的用户名: " username if ! id "$username" &>/dev/null; then echo -e "${RED}错误: 用户 $username 不存在。${NC}" read -p "按任意键继续..." system_user_menu return fi passwd "$username" read -p "按任意键返回系统用户管理菜单..." system_user_menu } # Samba用户管理子菜单(使用小写数字) samba_user_menu() { clear echo -e "${BLUE}===================== Samba用户管理 ======================${NC}" show_system_users echo show_samba_users echo -e "${BLUE}---------------------------------------------------------${NC}" echo -e "${LIGHT_RED}1. 增加Samba用户${NC}" echo -e "${LIGHT_RED}2. 删除Samba用户${NC}" echo -e "${LIGHT_RED}3. 修改Samba用户密码${NC}" echo -e "${LIGHT_RED}4. 退出脚本${NC}" echo -e "${LIGHT_RED}5. 返回主菜单${NC}" echo -e "${BLUE}=========================================================${NC}" read -p "请选择操作 [1-5]: " choice case $choice in 1) add_samba_user ;; 2) delete_samba_user ;; 3) modify_samba_user_password ;; 4) echo "感谢使用,退出脚本。"; exit 0 ;; 5) main_menu ;; *) echo -e "${RED}无效选择,请重试。${NC}"; sleep 2; samba_user_menu ;; esac } # 增加Samba用户 add_samba_user() { read -p "请输入要添加的Samba用户名(必须是系统用户): " username if ! id "$username" &>/dev/null; then echo -e "${RED}错误: 系统用户 $username 不存在,请先创建系统用户。${NC}" read -p "按任意键继续..." samba_user_menu return fi if pdbedit -L | grep -q "^$username:"; then echo -e "${RED}错误: $username 已为Samba用户。${NC}" read -p "按任意键继续..." samba_user_menu return fi smbpasswd -a "$username" if [ $? -eq 0 ]; then echo -e "${GREEN}Samba用户 $username 添加成功。${NC}" else echo -e "${RED}添加Samba用户 $username 失败。${NC}" fi read -p "按任意键返回Samba用户管理菜单..." samba_user_menu } # 删除Samba用户 delete_samba_user() { read -p "请输入要删除的Samba用户名: " username if ! pdbedit -L | grep -q "^$username:"; then echo -e "${RED}错误: $username 不是Samba用户。${NC}" read -p "按任意键继续..." samba_user_menu return fi smbpasswd -x "$username" if [ $? -eq 0 ]; then echo -e "${GREEN}Samba用户 $username 已成功删除。${NC}" else echo -e "${RED}删除Samba用户 $username 失败。${NC}" fi read -p "按任意键返回Samba用户管理菜单..." samba_user_menu } # 修改Samba用户密码 modify_samba_user_password() { read -p "请输入要修改密码的Samba用户名: " username if ! pdbedit -L | grep -q "^$username:"; then echo -e "${RED}错误: $username 不是Samba用户。${NC}" read -p "按任意键继续..." samba_user_menu return fi smbpasswd "$username" read -p "按任意键返回Samba用户管理菜单..." samba_user_menu } # Samba共享设置子菜单(使用小写数字) samba_share_menu() { clear echo -e "${BLUE}===================== Samba共享设置 ======================${NC}" #echo -e "${CYAN}可用用户参考:${NC}" show_system_users echo show_samba_users echo -e "${BLUE}---------------------------------------------------------${NC}" echo -e "${LIGHT_RED}1. 开始设置新共享${NC}" echo -e "${LIGHT_RED}2. 手动修改smb.conf${NC}" echo -e "${LIGHT_RED}3. 退出脚本${NC}" echo -e "${LIGHT_RED}4. 返回主菜单${NC}" echo -e "${BLUE}=========================================================${NC}" read -p "请选择操作 [1-4]: " choice case $choice in 1) setup_new_share ;; 2) edit_smb_conf_external ;; 3) echo "感谢使用,退出脚本。"; exit 0 ;; 4) main_menu ;; *) echo -e "${RED}无效选择,请重试。${NC}"; sleep 2; samba_share_menu ;; esac } # 带esc/ESC检测的读取函数,支持返回Samba共享设置主菜单 read_with_esc() { local prompt=$1 local var_name=$2 local default=$3 echo -n "$prompt" >&2 read -r input # 检查是否输入esc或ESC,直接返回Samba共享设置主菜单 if [ "$input" = "esc" ] || [ "$input" = "ESC" ]; then clear # 清屏 echo "检测到返回命令,返回共享设置主菜单..." echo # 空行 samba_share_menu # 直接调用共享设置主菜单 return # 退出当前函数 fi # 应用默认值 if [ -z "$input" ] && [ -n "$default" ]; then input="$default" fi # 将结果赋值给变量 eval "$var_name='$input'" return 0 } # 输入验证函数 - 只允许yes/no/回车/esc/ESC,支持返回Samba共享设置主菜单 validate_yes_no() { local prompt=$1 local default=$2 local input while true; do echo -n "$prompt" >&2 read -r input # 检查是否输入esc或ESC,直接返回Samba共享设置主菜单 if [ "$input" = "esc" ] || [ "$input" = "ESC" ]; then clear # 清屏 echo "检测到返回命令,返回共享设置主菜单..." echo # 空行 samba_share_menu # 直接调用共享设置主菜单 return # 退出当前函数 fi input=$(echo "$input" | tr '[:upper:]' '[:lower:]') # 转换为小写 # 允许为空(使用默认值) if [ -z "$input" ]; then echo "$default" return 0 fi # 验证是否为yes或no if [ "$input" = "yes" ] || [ "$input" = "no" ]; then echo "$input" return 0 fi # 输入无效,提示重新输入(使用标准错误输出) echo -e "${RED}输入无效!请输入 'yes'、'no'、'esc'(返回) 或直接回车使用默认值 '$default'。${NC}" >&2 done } # 配置确认函数 - 显示实际要写入smb.conf的内容,支持返回Samba共享设置主菜单 confirm_settings() { local config_lines=$1 clear echo -e "${BLUE}===================== 共享配置确认 =======================${NC}" echo -e "${CYAN}以下是将写入smb.conf的配置内容:${NC}" echo -e "${BLUE}---------------------------------------------------------${NC}" echo "$config_lines" echo -e "${BLUE}---------------------------------------------------------${NC}" echo -e "${RED}输入 'esc' 可返回共享设置主菜单${NC}" read -p "确认使用以上配置? [y/N] " confirm # 检查是否输入esc或ESC,直接返回Samba共享设置主菜单 if [ "$confirm" = "esc" ] || [ "$confirm" = "ESC" ]; then clear # 清屏 echo "检测到返回命令,返回共享设置主菜单..." echo # 空行 samba_share_menu # 直接调用共享设置主菜单 return # 退出当前函数 fi confirm=$(echo "$confirm" | tr '[:upper:]' '[:lower:]') if [ "$confirm" = "y" ] || [ "$confirm" = "yes" ]; then return 0 # 确认配置 else clear # 清屏 echo "配置已取消,返回共享设置主菜单..." echo # 空行 samba_share_menu # 直接调用共享设置主菜单 return # 退出当前函数 fi } # 设置新共享(支持输入esc/ESC返回共享设置主菜单) setup_new_share() { local share_name="共享文件夹" local comment="$CURRENT_USER的共享文件夹" local path="/data/usershare/$share_name" local valid_users="" local writeable="no" local write_list="" local guest_ok="no" local guest_writeable="no" local config_lines="" # 读取共享名,支持esc/ESC返回共享设置主菜单 read_with_esc "$(echo -e "${RED}【设置1】请输入共享名 (默认: $share_name,输入esc返回): ${NC}")" share_name "$share_name" # 读取共享描述,支持esc/ESC返回共享设置主菜单 read_with_esc "$(echo -e "${RED}【设置2】请输入共享描述 (默认: $comment,输入esc返回): ${NC}")" comment "$comment" # 读取共享目录,支持esc/ESC返回共享设置主菜单 read_with_esc "$(echo -e "${RED}【设置3】请输入共享目录 (默认: $path,输入esc返回): ${NC}")" path "$path" # 询问是否全部有效用户可写,支持esc/ESC返回共享设置主菜单 writeable=$(validate_yes_no "$(echo -e "${RED}【设置4】是否允许任意用户可写? (yes/no, 默认: no,输入esc返回): ${NC}")" "no") # 询问有效用户,支持esc/ESC返回共享设置主菜单 read_with_esc "$(echo -e "${RED}【设置5】请输入允许访问的有效用户(用逗号分隔,回车为空,输入esc返回): ${NC}")" valid_users # 询问可写用户,支持esc/ESC返回共享设置主菜单 read_with_esc "$(echo -e "${RED}【设置6】请输入允许写入的用户(用逗号分隔,回车则为空,输入esc返回): ${NC}")" write_list # 询问是否允许游客访问,支持esc/ESC返回共享设置主菜单 guest_ok=$(validate_yes_no "$(echo -e "${RED}【设置7】是否允许游客访问? (yes/no, 默认: no,输入esc返回): ${NC}")" "no") # 如果允许游客访问,添加nobody到有效用户列表 if [ "$guest_ok" = "yes" ]; then if [ -z "$valid_users" ]; then valid_users="nobody" else valid_users="$valid_users, nobody" fi # 询问游客是否可写,支持esc/ESC返回共享设置主菜单 guest_writeable=$(validate_yes_no "$(echo -e "${RED}【设置8】是否允许游客写入? (yes/no, 默认: no,输入esc返回): ${NC}")" "no") if [ "$guest_writeable" = "yes" ]; then if [ -z "$write_list" ]; then write_list="nobody" else write_list="$write_list, nobody" fi fi fi # 生成要写入smb.conf的配置内容 config_lines="[$share_name] comment = $comment path = $path browseable = yes read only = $(if [ "$writeable" = "yes" ]; then echo "no"; else echo "yes"; fi) writeable = $writeable guest ok = $guest_ok" # 只有当用户列表不为空时才添加相应配置 if [ -n "$valid_users" ]; then config_lines="$config_lines valid users = $valid_users" fi if [ -n "$write_list" ]; then config_lines="$config_lines write list = $write_list" fi # 添加剩余配置 config_lines="$config_lines create mask = 0766 directory mask = 0766 inherit permissions = no force user = $CURRENT_USER force group = $CURRENT_GROUP" # 显示实际配置内容并确认,支持esc/ESC返回共享设置主菜单 confirm_settings "$config_lines" # 如果用户确认配置,会继续执行下面的代码,否则已经在confirm_settings中返回主菜单 # 创建共享目录并设置权限 if [ ! -d "$path" ]; then mkdir -p "$path" chown -R "$CURRENT_USER:$CURRENT_GROUP" "$path" chmod 0766 "$path" echo -e "${GREEN}【提示】已创建共享目录: $path${NC}" fi # 备份配置文件 cp /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%Y%m%d%H%M%S) # 将配置写入文件 echo -e "\n$config_lines" >> /etc/samba/smb.conf echo -e "${GREEN}【完成】共享设置已添加到smb.conf${NC}" # 重启服务生效 systemctl restart smbd if [ $? -eq 0 ]; then echo -e "${GREEN}【提示】Samba服务已重启,新共享生效。${NC}" else echo -e "${RED}【提示】重启Samba服务失败,请手动重启。${NC}" fi read -p "按任意键返回共享设置菜单..." samba_share_menu } # 外部窗口打开smb.conf(不阻塞脚本运行) edit_smb_conf_external() { #echo "正在外部窗口打开smb.conf..." # 尝试用pluma在后台打开,不阻塞脚本 if command -v pluma &>/dev/null; then #pluma /etc/samba/smb.conf & disown pluma /etc/samba/smb.conf echo -e "${GREEN}已用pluma在新窗口打开smb.conf${NC}" else # 尝试其他图形化编辑器 for editor in gedit kate mousepad; do if command -v $editor &>/dev/null; then $editor /etc/samba/smb.conf & disown echo -e "${GREEN}已用$editor在新窗口打开smb.conf${NC}" return fi done # 如果没有图形化编辑器,提示用户 echo -e "${RED}未找到图形化编辑器,您可以在另一个终端中运行以下命令编辑:${NC}" echo -e "${CYAN}sudo pluma /etc/samba/smb.conf 或 sudo nano /etc/samba/smb.conf${NC}" fi read -p "按任意键返回共享设置菜单..." samba_share_menu } # Samba服务管理子菜单(使用小写数字) samba_service_menu() { # 获取当前服务状态 if command -v systemctl &>/dev/null; then status=$(systemctl is-active smbd) else status="未知(未使用systemd)" fi clear echo -e "${BLUE}===================== Samba服务管理 ======================${NC}" echo -e "${CYAN}当前Samba服务状态: $status${NC}" echo -e "${BLUE}---------------------------------------------------------${NC}" echo -e "${LIGHT_RED}1. 启动Samba服务${NC}" echo -e "${LIGHT_RED}2. 停止Samba服务${NC}" echo -e "${LIGHT_RED}3. 重启Samba服务${NC}" echo -e "${LIGHT_RED}4. 重新加载Samba配置(不中断服务)${NC}" echo -e "${LIGHT_RED}5. 设置Samba服务开机自启${NC}" echo -e "${LIGHT_RED}6. 禁用Samba服务开机自启${NC}" echo -e "${LIGHT_RED}7. 查看Samba服务状态${NC}" echo -e "${LIGHT_RED}8. 退出脚本${NC}" echo -e "${LIGHT_RED}9. 返回主菜单${NC}" echo -e "${BLUE}=========================================================${NC}" read -p "请选择操作 [1-9]: " choice case $choice in 1) start_samba_service ;; 2) stop_samba_service ;; 3) restart_samba_service ;; 4) reload_samba_service ;; 5) enable_samba_autostart ;; 6) disable_samba_autostart ;; 7) check_samba_status ;; 8) echo "感谢使用,退出脚本。"; exit 0 ;; 9) main_menu ;; *) echo -e "${RED}无效选择,请重试。${NC}"; sleep 2; samba_service_menu ;; esac } # 启动Samba服务 start_samba_service() { if command -v systemctl &>/dev/null; then systemctl start smbd if [ $? -eq 0 ]; then echo -e "${GREEN}Samba服务已成功启动${NC}" else echo -e "${RED}启动Samba服务失败${NC}" fi else service smbd start if [ $? -eq 0 ]; then echo -e "${GREEN}Samba服务已成功启动${NC}" else echo -e "${RED}启动Samba服务失败${NC}" fi fi read -p "按任意键返回服务管理菜单..." samba_service_menu } # 停止Samba服务 stop_samba_service() { if command -v systemctl &>/dev/null; then systemctl stop smbd if [ $? -eq 0 ]; then echo -e "${GREEN}Samba服务已成功停止${NC}" else echo -e "${RED}停止Samba服务失败${NC}" fi else service smbd stop if [ $? -eq 0 ]; then echo -e "${GREEN}Samba服务已成功停止${NC}" else echo -e "${RED}停止Samba服务失败${NC}" fi fi read -p "按任意键返回服务管理菜单..." samba_service_menu } # 重启Samba服务 restart_samba_service() { if command -v systemctl &>/dev/null; then systemctl restart smbd if [ $? -eq 0 ]; then echo -e "${GREEN}Samba服务已成功重启${NC}" else echo -e "${RED}重启Samba服务失败${NC}" fi else service smbd restart if [ $? -eq 0 ]; then echo -e "${GREEN}Samba服务已成功重启${NC}" else echo -e "${RED}重启Samba服务失败${NC}" fi fi read -p "按任意键返回服务管理菜单..." samba_service_menu } # 重新加载Samba配置 reload_samba_service() { if command -v systemctl &>/dev/null; then systemctl reload smbd if [ $? -eq 0 ]; then echo -e "${GREEN}Samba配置已成功重新加载${NC}" else echo -e "${RED}重新加载Samba配置失败${NC}" fi else service smbd reload if [ $? -eq 0 ]; then echo -e "${GREEN}Samba配置已成功重新加载${NC}" else echo -e "${RED}重新加载Samba配置失败${NC}" fi fi read -p "按任意键返回服务管理菜单..." samba_service_menu } # 设置Samba开机自启 enable_samba_autostart() { if command -v systemctl &>/dev/null; then systemctl enable smbd if [ $? -eq 0 ]; then echo -e "${GREEN}已设置Samba服务开机自启${NC}" else echo -e "${RED}设置Samba开机自启失败${NC}" fi else update-rc.d smbd enable if [ $? -eq 0 ]; then echo -e "${GREEN}已设置Samba服务开机自启${NC}" else echo -e "${RED}设置Samba开机自启失败${NC}" fi fi read -p "按任意键返回服务管理菜单..." samba_service_menu } # 禁用Samba开机自启 disable_samba_autostart() { if command -v systemctl &>/dev/null; then systemctl disable smbd if [ $? -eq 0 ]; then echo -e "${GREEN}已禁用Samba服务开机自启${NC}" else echo -e "${RED}禁用Samba开机自启失败${NC}" fi else update-rc.d smbd disable if [ $? -eq 0 ]; then echo -e "${GREEN}已禁用Samba服务开机自启${NC}" else echo -e "${RED}禁用Samba开机自启失败${NC}" fi fi read -p "按任意键返回服务管理菜单..." samba_service_menu } # 查看Samba服务状态 check_samba_status() { echo -e "${CYAN}Samba服务状态详情:${NC}" if command -v systemctl &>/dev/null; then systemctl status smbd --no-pager else service smbd status fi read -p "按任意键返回服务管理菜单..." samba_service_menu } main_menu
根据以上保存了脚本,然后执行就可以正常操作!
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!
赏
支付宝赞助
微信赞助


免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。
您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源 LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。
敬请谅解! 侵权删帖/违法举报/投稿等事务联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » Linux系统利用bash脚本设置Samba服务器管理功能