1. samba介绍
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,以实现文件共享和打印机服务共享。
2. samba安装
2.1 yum安装
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 = 禁止访问该共享的用户
