IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    巧用echo命令解决Samba批量添加用户难题

    小残发表于 2016-06-26 10:14:31
    love 0

    今天在张戈博客看到一篇使用echo命令解决Samba批量添加用户难题个人感觉挺实用的,这里分享给大家。

    Samba的专业解释我就不贴了,百度百科啥的都有。说白了就是Samba安装到Linux服务器上之后,就可以将服务器上的目录映射到Windows、MAC等个人电脑上,类似于Windows的文件共享,使用相当方便,因此,Samba成了组内开发同事的刚需软件。。。(其实对于使用云服务器的站长,Samba可比FTP好用多了,直接本地编译。。。这个后面有空再介绍吧)

    samba

    这批开发测试机大部分都是基于Centos的linux系统,所以使用yum install -y samba 就能安装了。安装后发现需要在每台服务器上都配置组内30多个成员的samba账号,手工单个的加太苦逼了,于是写了一个Samba批量添加用户的脚本了。

    #!/bin/sh
    # FileName: addsmbuser.sh
    # Useage : sh addsmbuser.sh userlistfile / username
    #批量添加用户
    add_list(){
        #从userlist中读取用户帐号并循环添加
        cat $1 | while read username
        do
            #利用echo -e 的回车功能解决smbpasswd需要交互的问题,比expect简单多了
            echo -e "$username\n$username" | smbpasswd -a $username -s
            #如果添加成功,则新建家目录,避免首次直接登陆samba失败,适合公司铁将军鉴权方式,其他环境可以省略
            if [[ 0 = $? ]]
            then
                mkdir -p /home/$username
                chown -R $username:users /home/$username
            fi
        done
    }
    #单个添加用户
    add_one() {
       echo -e "$1\n$1" | smbpasswd -a $1 -s && (
           mkdir -p /home/$1
           chown -R $1:users /home/$1
       )
    }
    
    # 先确认系统安装了samba,如果没有就安装 
    which smbpasswd || yum install -y samba
    
    #如果参数1是文件那么执行批量添加,否则就单个添加
    if [[ ! -z $1 ]];then
        test -f $1 && (
            add_list $1
        ) || (
            add_one $1
        )
    else
        echo "Usage: $0 username / userlistfile"
        exit 1
    fi

    使用也非常简单,将如上代码保存为 addsmbuser.sh,然后将需要添加的用户名一行一个保存到一个文本文件,比如userlist,然后执行

    sh addsmbuser.sh userlist

    就能批量添加这些用户了,初始密码和用户名一致。

    当然,直接执行sh addsmbuser.sh  + 用户名还能添加单个用户

    由于smbpasswd正常使用是需要交互进行的,也就是输入用户名,再输入密码,这种批量交互的活完全可以使用expect脚本来完成。但是本文比较巧妙的利用了echo -e 可以输出回车符(\n)的特性,非常轻巧的完成了任务。

    暂时就写这么多,后面有时间再整理下坑爹的SuSE下如何编译安装Samba,以及Samba的简单使用。

    本文转载至:巧用echo命令解决Samba批量添加用户难题 | 张戈博客


    作者: 小残 绳命不息 |折腾不止 |我一天不折腾心里难受
    转载请以链接形式注明本文地址:http://www.exehack.net/3455.html
    版权所有© 小残's Blog – 关注网络安全 | 本网站内容采用 BY-NC-SA 进行授权。


沪ICP备19023445号-2号
友情链接