1.samba简介
- Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
实验
环境要求:同样需要两台主机来模拟实验,一台做为客户端,一台做为服务端。这里我的客户端为192.168.226.128,服务端为190.168.226.129。
1.搭建匿名用户共享服务器
- 第一步首先在客户端和服务端都装上samba服务,并开启。顺便把客户端和服务端的防火墙都关掉。
客户端
[root@Hongxiande ~]# yum install -y samba-*
[root@Hongxiande ~]# systemctl start smb
[root@Hongxiande ~]# systemctl stop firewalld
[root@Hongxiande ~]# ss -antl //查看139和445端口是否都开启
服务端
[root@localhost ~]# yum install -y samba-*
[root@localhost ~]# systemctl start smb
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# ss -antl
第二步配置服务端,修改samb配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
map to guest = Bad User //添加
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
//创建一个共享目录
[root@localhost ~]# mkdir -p /samba/dubai
[root@localhost ~]# chmod 777 /samba/dubai/
[root@localhost ~]# ll /samba/
总用量 0
drwxrwxrwx 2 root root 6 9月 11 16:41 dubai
//再次修改配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
[dubai]
comment = dubai
path = /samba/dubai
browseable = yes
guest ok = yes
writable = yes
public = yes
[root@localhost ~]# systemctl restart smb //重新启动下服务
- 到客户机查看效果
[root@Hongxiande ~]# smbclient -L 192.168.226.129 -U 'Bad User'
Enter SAMBA\Bad User's password:
OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
dubai Disk dubai
IPC$ IPC IPC Service (Samba 4.6.2)
OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
//再尝试将samba服务器的共享资源挂载到客户机本地
[root@Hongxiande ~]# mkdir -p /samba/dubai
[root@Hongxiande ~]# chmod 777 /samba/dubai/
[root@Hongxiande ~]# mount -t cifs //192.168.226.129/dubai /samba/dubai -o username='Bad User'
[root@Hongxiande ~]# df -h |grep //
//192.168.226.129/dubai 18G 1.1G 17G 7% /samba/dubai
[root@Hongxiande ~]# cd /samba/dubai/
[root@Hongxiande dubai]# ls
[root@Hongxiande dubai]# mkdir xixi
[root@Hongxiande dubai]# touch haha
[root@Hongxiande dubai]# ls
haha xixi
再回到服务端验证
[root@localhost ~]# cd /samba/dubai/
[root@localhost dubai]# ls
haha xixi
[root@localhost dubai]#
2.搭建用户认证共享服务器
创建用户dubai,并为此用户创建smb共享密码
[root@localhost ~]# useradd -M dubai
[root@localhost ~]# smbpasswd -a dubai
New SMB password:
Retype new SMB password:
Added user dubai.
映射dubai用户为hxd用户,修改配置文件
[root@localhost ~]# vim /etc/samba/smbusers
dubai = hxd
~
~
再修改全局配置,修改配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
username map = /etc/samba/smbusers
passdb backend = tdbsam
创建一个共享目录dubai1
[root@localhost ~]# mkdir -p /samba/dubai1
[root@localhost ~]# chown -R dubai.dubai /samba/dubai1
修改配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
[dubai1]
comment = dubai1
path = /samba/dubai1
browseable = yes
guest ok = yes
writable = yes
write list = dubai
public = yes
重启smb服务
[root@localhost ~]# systemctl start smb
在客户端查看
[root@Hongxiande ~]# smbclient -L 192.168.226.129 -U hxd
Enter SAMBA\hxd's password:
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
dubai Disk dubai
IPC$ IPC IPC Service (Samba 4.6.2)
dubai1 Disk dubai1
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
将服务器的共享资源挂载到客户机本地
[root@Hongxiande ~]# mount -t cifs //192.168.226.129/dubai1 /samba/dubai/ -o username=hxd,password=//smb设置的密码
[root@Hongxiande ~]# df -h |grep //
//192.168.226.129/dubai1 18G 1.1G 17G 7% /samba/dubai
//在客户机进入共享目录创建文件
[root@Hongxiande ~]# cd /samba/dubai/
[root@Hongxiande dubai]# ls
[root@Hongxiande dubai]# mkdir aa
[root@Hongxiande dubai]# touch bb
[root@Hongxiande dubai]# ls
aa bb
在服务器上验证
[root@localhost ~]# cd /samba/dubai1
[root@localhost dubai1]# ls
aa bb