Shell脚本 ---一键安装samba服务,任何人都能访问,目录为只读

一键安装samba服务,任何人都能访问,目录为只读

  • 【shell要求】
    写一个shell脚本,能够实现一键安装并配置samba服务,执行该脚本时需要带一个共享的路径,它是共享的目录,目录若存在,需自动创建samba。

要求,任何人都可以访问,并且不需要密码,并且是只读的。

  • 【shell分析】
    1、需要判断的用户给出的是目录是不是绝对路径,即是否以‘/’开头
    2、脚本需要判断samba服务是否已经安装,若已经安装了就不需要执行yum -y install samba 了
    3、配置文件可以使用sed -i
    4、samba配置可以参考http://www/apelearn.com/study_v2/chapter24.html#id1
    其中在centos7上的新samba配置稍微有点差异,本题要求的任何人都可以访问,不需要修改security这一项目,保持默认即可。

  • 【shell配置】

    #!/bin/bash
    if [ "$#" -ne 1 ]          ####判断位置变量的个数 是否为 1
    then
    echo "运行脚本格式为:$0 /dir/"       ####是的话,则输出“运行脚本格式为:$0 /dir/”
    exit 1         ####返回一层继续判定
    else
      if ! echo $1 |grep -q '^/.*'     ####判定 输出的$1位置上的格式是否是绝对路径
      then
      echo "请提供一个绝对路径。"        ####是的话则输出"请提供一个绝对路径。" 
      exit 0       ####返回
      fi
    fi
    
    if ! rpm -q samba >/dev/null       ####判定samba服务是否安装,反馈的数据信息导入/dev/null
    then
    echo "将要安装samba"         ####已安装,则输出 "将要安装samba"
    sleep 1          ####睡眠一秒先执行下面命令
    yum -y install samba          ####yum安装
      if [ $? -ne 0 ]             ####判断不等于0
      then
      echo "samba 安装失败"           ####则输出"samba 安装失败"  
      exit 1
      fi
    fi
    
    dirconf="/etc/samba/smb.conf"          ####samba配置文件修改追加
    cat >> $dirconf << EOF
    [global]
      workgroup = workgroup
      security = user
      map to guest = bad user
    [share]
      comment= share all
      path = $1
      browseable = yes
      public = yes
      writable = no
    EOF
    
    if [ ! -d $1 ]        ####判定取反、是否为一个文件
    then
    mkdir -p $1         ####则递归创建目录
    fi
    
    chmod 777 $1       ####给与任何人读写执行的权限(图绅士,可修改)
    chown nobody:nobody $1          ####修改属主、属组
    echo "www.51xit.top" > $1/51xit.txt
    
    systemctl start smb         ####开启samba服务
    if [ $? -ne 0 ]               ####判断开启成功开启服务
    then
       echo "samba服务启动失败,请检查配置文件是否正常"
    else
       echo "samba服务启动正常"
    fi
    
  • 【shell测试】

chmod +x /opt/samba.sh ###设置权限

/opt/samba.sh /opt/samba/ ###执行脚本

猜你喜欢

转载自blog.csdn.net/XCsuperman/article/details/108304702