1.安装:
yum -y install samba samba-client samba-common

2.启动:
systemctl start nmb.service
nmdb:
这个daemon是用来管理工作组、NetBIOS(Network Basic Input/Output System) name等解析工作。
主要利用UDP协议开启137、138端口来负责解析任务。
systemctl start smb.service
smdb:
这个daemon是用来管理samba主机分享的目录、档案和打印机等。
主要利用TCP协议来传输数据,开发139端口。

3.主要配置文件:
/etc/samba/smb.conf:samba主配置文件,包含global配置和共享资源配置。

[global]
  workgroup = MYGROUP
  server string = Samba Server Version %v
  log file = /var/log/samba/log.%m   ###samba log日志
  max log size = 50
  security = user   ## 配置user层级
  passdb backend = tdbsam  ## 使用TDB数据库格式
  load printers = no  ##打印服务
  printing = bsd
  printcap name = /dev/null
  disable spoolss = yes
============================ Share Definitions ==============================
##[homes]
     comment = Home Directories
     browseable = no
     writable = yes
     valid users = %S
     valid users = MYDOMAIN\%S

##[printers]
      comment = All Printers
       path = /var/spool/samba
       browseable = no
       guest ok = no
       writable = no
      printable = yes

[public]
        comment = 公共文件存放
        path = /data/smbshare/public
        #read list = xxx
        create mask = 777
        directory mask = 777
        public = yes
        writeable = yes

[rulefiles]
        comment = 公司制度文件
        browseable = yes  ##可被其他人浏览
        create mask = 777
        directory mask = 777
        path = /data/smbshare/rulefiles   ##共享的目录,Samba服务器共享出来的路径
        read list = aaa,bbb
        write list = aaa,bbb
        valid users = aaa,bbb

修改配置完 /etc/samba/smb.conf重新检查一下语法:testparm

/etc/samba/lmhosts配置文件: 对应NetBIOS name的IP,lmhosts对应主机名是NetBIOS name。 类似/etc/hosts

4.创建共享目录设置权限,创建samba账号和密码
建立系统账号:

   mkdir -p /data/smbshare/public
   useradd -G users smb1
   useradd -G users smb2
   useradd -G users smb3
   echo 1234 | passwd --stdin smb1
   echo 1234 | passwd --stdin smb2
   echo 1234 | passwd --stdin smb3

samba使用 pdbedit命令将创建的系统账号添加成Samba用户。早期使用smbpasswd命令,后使用TDB数据库,所以使用pdbedit命令管理samba用户数据。
使系统账号添加成Samba用户:pdbedit -a -u smb1 pdbedit -a -u smb2 pdbedit -a -u smb3
列出当前Samba数据库中账号与UID等详细信息:pdbedit -vL

bash /root/smbuser.sh 用户名

#!/bin/bash
username=$1
passWD=`/dev/null 2>&1
echo -e "$passWD\n$passWD" | smbpasswd -a $username -s
echo "用户名:$username    密码:$passWD"
echo "$username    $passWD" >> pass.file

5.Linux客户端安装:
yum -y install samba-client samba-common
挂载测试:
/usr/bin/mount -t cifs //192.168.2.200/smb1 /mnt -o username=smb1,password=4321
df -h