Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户程序构成,SMB(Server Messages Block,)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOSover TCP/IP”使得 Samba 不但能与局域网络主机分享源,还能与全世界的电脑分享资源。
(1)准备工作
1). 防火墙关闭,selinux开启;
2). desktop:172.25.254.126 (desktop126.example.com)
server:172.25.254.139(server139.example.com)
3). vim /etc/hosts
(2)samba简单配置
**- samba服务端配置
yum install samba-client samba-common samba -y//安装samba服务端需要的软件
systemctl start smb
systemctl start nmb//启动samba服务,smb(tcp),nmb(udp),并设置服务开机自启
netstat -antlupe | grep -E 'nmb|smb'//显示smb,nmb端口
**- 客户端检测:
smbclient -L //172.25.254.139//客户端匿名用户登陆samba服务,查看服务端共享的内容
(3)通过samba共享目录之匿名用户访问
**- samba服务端配置:
1). 创建共享目录
mkdir /smbshare/smb{1..3} -p
chcon -t samba_share_t /smbshare/ -R
//临时设置selinux安全上下文,参考文件/etc/samba/smb.conf
semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'
restorecon -FvvR /smbshare
2). 修改配置/etc/samba/smb.conf,末尾添加内容如下:
vim /etc/samba/smb.conf
@@
124map to guest = bad user
322 # my samba share directory is /smbshare
323[mywestos]
324comment = My samba share
325path = /smbshare
326public = yes
327 guest ok = yes
328writable = yes
@@
systemctl restart smb
**- 客户端检测:
smbclient -L //server139//显示server139主机共享的目录
smbclient //server139/mywestos//交互式访问samba服务共享的内容
yum install cifs-utils -y
mount //172.25.254.139/mywestos /mnt/ -o username=guest
vim /etc/fstab//设置samba共享永久挂载
@@
//server139/mywestos /mnt cifs defaults 0 0
@@
注意:不能对samba共享目录操作时,解决办法:修改服务端共享目录的权限,
chmod 777 /smbshare
(4)通过samba共享本地用户家目录之本地用户访问
**- samba服务端配置:
1).创建可以使用samba的帐号和密码
useradd user1
useradd user2
useradd user3
smbpasswd -a user1
smbpasswd -a user2
smbpasswd -a user3
setsebool -P samba_enable_home_dirs on
**- 客户端检测:
smbclient -L //server139 -U user1
smbclient -L //server139/user1 -U user1
(5)通过samba共享新建目录之本地用户访问
**- samba服务端配置:
groupadd smbgroup
usermod -aG smbgroup user1
usermod -aG smbgroup user2
Vim /etc/samba/smb.conf
@@
323# my samba share directory is /smbshare
324[mywestos]
325comment = My samba share
326path = /smbshare
327 ;public = yes
328 ;guest ok = yes
329valid users = user2
//允许哪些用户或者用户组访问该共享目录,+smbgroup|@smbgroup
330write list = @smbgroup
//允许哪些用户或者用户组往该共享目录中写入内容
@@
**- 客户端检测:
mount //server139/mywestos /mnt -o username=user1,passwd=user1
**永久挂载1:
vim /etc/fstab
@@
//server139/mywestos /mnt cifs defaults,username=user1,password=user10 0
@@
**永久挂载2:
vim /root/smbpasswd
@@
user=user1
pass=user1
@@
vim /etc/fstab
@@
//server139/mywestos /mnt cifs defaults,credentials=/root/smbpasswd0 0
@@
(6)客户端多用户挂载
**- 客户端操作:
yum install cifs-utils -y
vim /root/smbpasswd
@@
user=user1
pass=user1
user=user2
pass=user2
user=user3
pass=user3
@@
vim /etc/fstab
@@
//server139/mywestos /mnt cifs defaults, credentials=/root/smbpasswd,multiuser, sec=ntlmssp0 0
@@
检验方式:
在客户端新建用户user{1,2,3},当切换用户到user1用户时,默认访问不到/mnt的内容。
激活方式如下:
cifscreds add server139