Samba服务
目的:针对Windows客户端,提供<文件共享服务>
一、安装
1、yum安装
yum install -y samba
## 启动:samba服务
systemctl enable nmb smb
systemctl start nmb smb
## 重载:samba服务
systemctl reload smb
## 配置:防火墙
firewall-cmd --zone=public --add-service=samba --permanent
firewall-cmd --reload
## 配置:SELinux
setsebool -P samba_export_all_rw on
2、make编译安装
tar -axf samba-4.8.3.tar.gz
cd samba-4.8.3
yum install -y gcc perl python-devel \
libacl-devel openldap-devel pam-devel
./configure --without-ad-dc
make
make install
## 创建:smb.conf配置文件
\cp -f ~/samba-4.8.3/examples/smb.conf.default /usr/local/samba/etc/smb.conf ## 配置:PATH环境变量
cat >/etc/profile.d/samba.sh<<EOF
export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin
EOF
source /etc/profile
## 启动:Samba服务
nmbd
smbd
## 重载:Samba服务
pkill -HUP smbd
二、了解:smb.conf配置文件
1、默认内容(以YUM安装为例)
cat /etc/samba/smb.conf
[global] ## <全局性参数>的配置
workgroup = SAMBA <---- 标识:工作组
security = user <---- 这是Samba最重要的设置之一,设置:设置验证方式,user 表示<samba用户本地验证>
passdb backend = tdbsam <---- 设置:samba的<用户口令验证的后台>为<tdbsam数据库文件>
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes] ## <用户家目录>的配置
comment = Home Directories
valid users = %S, %D%w%S <---- 设置:允许的<用户列表>
%S 表示:所有的<samba用户名>
%D 表示:<域名>或<工作组名>
%w 表示:winbind的分隔符,默认是反斜杠(\)
%D%w%S 表示:域名或工作组名\samba 用户名
形式1:user01
形式2:workgroup_name\user01
形式3:domain_name\user01 browseable = No <---- 禁止:被<网络共享发现>
read only = No <---- 允许:读写
inherit acls = Yes <---- 允许:权限继承
[printers] ## <共享打印>的配置
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$] ## <共享打印>的<客户端驱动程序>配置
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775
三、创建:自定义的<共享文件夹>(匿名访问,只读)(以YUM安装为例)
1、创建:共享目录
mkdir -p /share
chmod 755 /share
setfacl -m u:nobody:r-x,g:nobody:r-x /share
2、配置:smb.conf配置文件(发布:匿名共享访问)
cat >/etc/samba/smb.conf<<EOF
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
## map to guest = Bad User含义如下:
## 如果<登录用户的密码>不正确,则视为:<登录失败>
## 如果<登录用户的账户>不存在,则视为:<guest account选项>中的<nobody 账户>
map to guest = Bad User
[share]
comment = My public Share
## 允许:网络邻居浏览
browseable = Yes
## 设置:只读
read only = Yes
## 允许:权限继承
inherit acls = Yes
## 设置:共享目录路径
path = /share
## 允许:匿名访问
guest ok = Yes
## 设置:<匿名账户>为<nobody账户>
guest account = nobody
EOF
3、重载:samba服务
systemctl reload smb
四、Windows客户端的<共享访问>
1、创建:共享连接
cmd
net use \\10.0.0.101
2、查看:共享连接
cmd
net use
3、删除:共享连接
cmd
net use \\10.0.0.101 /delete
4、通过<文件资源管理器>,在<地址栏>输入:\\10.0.0.101(即可)
五、配置:Samba用户的<本地验证>
1、创建:<Linux操作系统的用户>
useradd user01 -s /usr/sbin/nologin
2、创建:Samba用户及密码
smbpasswd -a user01
3、配置:smb.conf配置文件(发布:可读写的共享访问,需要执行<Samba用户的本地验证>)
cat >/etc/samba/smb.conf<<EOF
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
[share]
comment = My public Share
## 允许:网络邻居浏览
browseable = Yes
## 设置:只读
read only = NO
## 允许:权限继承
inherit acls = Yes
## 设置:共享目录路径
path = /share
## 禁止:匿名访问
guest ok = No
EOF
4、重载:Samba服务
systemctl reload smb
5、设置:<共享目录>的<本地权限>
chmod o=rwx /share
6、Windwos客户端:使用user01用户进行<共享访问>
六、管理:Samba用户
1、创建:
sampasswd -a user01
2、禁用
sampasswd -d user01
3、启用:
sampasswd -e user01
4、查看:
pdbedit -Lw
5、删除。