1. samba介绍

为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,以实现文件共享和打印机服务共享。

2. samba安装

2.1 yum安装

  1. yum install -y samba

2.2 编译安装

wget https://download.samba.org/pub/samba/samba-4.9.18.tar.gz    ##下载安装包

tar -zxf samba-4.9.18.tar.gz             ##解压缩 -J 通过 xz 过滤归档
cd samba-4.9.18/

./configure --without-ad-dc --sbindir=/usr/sbin/  --sysconfdir=/etc/samba/ --mandir=/usr/share/man/ --with-shared-modules='!vfs_snapper'         

##  --without-ad-dc                      即不安装AD DC模式
## --with-shared-modules='!vfs_snapper'  vfs_snapper — Expose snapshots managed by snapper as shadow-copies
## --sbindir=/usr/sbin/                  执行文件放在/usr/sbin,而非默认的/usr/local/samba/sbin/中
## --sysconfdir=/etc/samba/              配置文件放在/etc/samba/,而非默认的/usr/local/samba/etc/中
## --mandir=/usr/share/man/              文档文件放在/usr/share/man/

make -j 4                                ## 可以同时并行4个子任务,使make更快
make install
# 将samba命令加入系统环境中
echo "export PATH=$PATH:/usr/local/samba/bin/:/usr/local/samba/sbin" >> /etc/profile.d/samba.sh

节参考自:https://o-my-chenjian.com/2018/10/11/Source-Code-Compilation-And-Installation-Of-Samba-On-CentOS7/

2.3 启动samba

vim /etc/samba/smb.conf
[global]
        workgroup = gaia
        security = user
        passdb backend = tdbsam
        log file = /var/log/samba/log.%m
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        smb ports = 1445    ##指定特定端口
[attachment]
        comment = Home Directories
        browseable = yes
        writable = yes
        path = /attachment


/usr/sbin/smbd -D

3. linux samba的简单配置

3.1 添加用户并设置密码

useradd gaia
smbpasswd -a gaia
    New SMB password:Workforce@2022
    Retype new SMB password:Workforce@2022


smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
smbpasswd -d 冻结用户,就是这个用户不能在登录了
smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
smbpasswd -n 把用户的密码设置成空.
             要在global中写入 null passwords -true
smbpasswd -x  删除用户

3.2 查看samba用户

pdbedit -L

3.3 重启samba服务

systemctl restart smb

3.4 附配置文件(部分)

# cat /etc/samba/smb.conf

[global]                             #定义全局策略
workgroup = WORKGROUP                #定义工作组,工作组。在windows中,默认所有主机的工作组为“WORKGROUP”,windows10在 “网络” 这,如果所有人都是默认的工作组,则会直接显示主机名。当然如果局域网中有多个工作组,则是先显示工作组,工作组下面包含各个主机名。工作组的目的就是为了方便管理。
log file = /var/log/samba/%m.log     #错误日志路径,文件后面加一个%m(主机名),每个主机都会有一个主机名.log日志文件
max log size = 50                    #最大日志的大小,单位是KB。如果超过50KB,则删除最先的内容,保存最新的内容
max connections = 0                  #用来指定连接Samba server服务器最大连接数如果操作则连接请求被拒绝。0表示不限制。
security = user                      #设置客户端访问Samba服务器的验证方式,Samba4版本已经不使用share和server方式,这里不介绍
                                     #user:Samba用户名和密码登录
                                     #domain:添加Samba服务器到N域,由NT与控制起来进行身份验证。域安全级别,使用主域控制器(PDC)来完成认证。  


passdb backend = tdbsam              #用户后台,有三种
                        #smbpasswd : 使用smb工具smbpasswd给系统用户设置一个samba密码,客户端就用此密码访问samba 资源。smbpasswd在/etc/samba中,有时需要手动创建该文件。
                                     #tdbsam : 使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb可使用smbpasswd -a创建samba用户,要创建的samba用户必须是系统用户。也可使用pdbedit创建samba账户。pdbedit参数很多。列出几个重要的: 

                                     #pdbedit -a username :新建用户
                                     #pdbedit -x username :删除用户
                                     #pdbedit -L :列出用户列表,读取passdb.tdb数据库文件
                                     #pdbedit -Lv : 列出用户列表详细信息
                                     #pdbedit -c "[D]" -u username : 暂停该用户帐号
                                     #pdbedit -c "[]" -u username : 恢复该用户帐号

                        #ldapsam:基于LDAP帐号管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”


[attachment]                         #共享名称
comment = Home Directories           #注释,共享的描述信息
path = /attachment
browseable = Yes                     #共享目录是否可以被浏览
read only = Yes                      #共享目录是否可以读
writable = yes/no                    #共享目录是否可以写
valid users = 允许访问该共:q享的用户
invalid users = 禁止访问该共享的用户