巧用echo命令解决Samba批量添加用户难题 | 张戈博客

  • 时间:
  • 浏览:38
  • 来源:我要辅助网_提供我爱网技术_我爱收集网资讯

最近虽然太忙,没时间研究和折腾,就说 也没哪些能不都都都能否分享到博客的。简直,该人博客坚持原创太我不要 容易了。张戈博客上线2年多,从1天多更,到一天1更、一周一更,直到现在2星期机会有一更的节奏。。。

好了,废话不说了。翻了翻在工作上的印象笔记,发现还是有或多或少存货能不都都都能否分享的。

挺久就说 ,组内新申请了一批开发测试机,还要部署环境。除了或多或少常见的软件要安装之外,还有三个小多我就说 很少用到的Samba。

Samba的专业解释我不要 不贴了,百度百科啥的有的是。说白了就说 Samba安装到去Linux服务器上就说 ,就能不都都都能否将服务器上的目录映射到Windows、MAC等该人电脑上,你这个于于Windows的文件共享,使用相当方便,或多或少,Samba成了组内开发同事的刚需软件。。。(虽然对于使用云服务器的站长,Samba可比FTP好用多了,直接本地开发编辑。。。你你你这个上端有空再介绍吧)

这批开发测试机大次要有的是基于Centos的Tlinux系统,就说 使用yum install -y samba 就能安装了。安装后发现还要在每台服务器上都配置组内400多个成员的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的简单使用。