一、什么是Samba服务
Samba是一种开源的软件套件,实现了SMB/CIFS 协议(Server Message Block / Common Internet File System),用于在Linux/Unix和Windows系统之间提供文件共享、打印服务及域控制器功能。
- Samba是一个C/S架构,也就是客户端/服务端
- Samba套件构成:
- samba:Samba的主程序和守护进程以及相关文档内容
- samba-common:提供主要的配置文件以及语法校验命令
- samba-client:提供客户端的工具命令
- Samba软件包: samba
- Samba服务名: smb、nmb
- Samba的主要配置目录: /etc/samba
- lmhosts文件:主要配置IP和主机名的对应关系,类似于/etc/hosts
- smb.conf文件:Samba最主要的配置文件,指定共享目录等内容
- smbpasswd文件:默认没有,存放samba的用户和密码的文件;进行用户验证需要使用
- Samba工作端口:smb服务工作在TCP的139 (NetBIOS)、 445端口,nmb服务工作在UDP的137、138端口
二、Samba常用命令
- smbpasswd命令: 设置samba的用户以及密码,管理samba用户和密码。
常用选项:
-a 添加一个用户为samba用户
-x 删除一个samba用户 - pdbedit命令: 管理samba用户数据库
常用选项:
-L 列出所有的samba用户
-Lv 显示详细信息
-x 删除samba用户
-a 创建samba用户 - testparm命令: 测试samba配置文件设置是否正确
- smbclient命令: 查看samba服务的共享目录。
-L 指定sama服务器IP地址,-U 指定用户名
三、安装配置Samba服务
[root@web2 ~]# yum install -y samba
Samba的主要配置文件:/etc/samba/smb.conf
[global] #samba的全局配置
workgroup = MYGROUP #指定工作组名称
security = user #设置安全等级,user模式需用户验证,share模式无需验证
server string = Samba Server Version #指定主机注释说明
netbios name = MYSERVER #指定Samba默认主机名,例如在windows上查看共享显示的主机名
hosts allow = 127. 192.168.12. 192.168.13. #允许访问samba服务器IP地址范围,默认允许所有的IP访问
[homes]
valid users = #指定允许访问用户
invalid users = #指定不允许访问用户
write list = #指定写入用户
read list = #设置只读用户
public = yes #是否可以匿名访问
需求: 将/windata目录共享给Windows服务器
1.共享/windata目录给Windows服务器,共享名为storage
2.仅允许Windows使用user1和user2访问共享,并且允许读写
##创建共享目录
[root@web2 ~]# mkdir /windata
##修改smb.conf配置文件
[root@web2 ~]# vim /etc/samba/smb.conf
[storage]
comment = windows server storage
path = /windata
write list = user1,user2
valid users = user1,user2
##设置开机自启并启动服务
[root@web2 ~]# systemctl enable --now smb.service
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
[root@web2 ~]# systemctl enable --now nmb.service
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
##添加普通用户和Samba用户
[root@web2 ~]# useradd user1
[root@web2 ~]# useradd user2
[root@web2 ~]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
[root@web2 ~]# smbpasswd -a user2
New SMB password:
Retype new SMB password:
Added user user2.
##设置用户对目录的权限
[root@web2 ~]# setfacl -m u:user1:rwx /windata/
[root@web2 ~]# setfacl -m u:user2:rwx /windata/
四、客户端测试
Win客户端:
- 使用win+R,输入\192.168.10.201
- 输入Samba用户名和密码
- 进入storage目录,创建目录和文件进行测试
Linux客户端: - 安装Samba客户端
[root@database ~]# yum -y install samba-client
- 查看
[root@database ~]# smbclient -L //192.168.10.201 -U user2
Enter SAMBA\user2's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
storage Disk windows server storage
IPC$ IPC IPC Service (Samba 4.13.3)
user2 Disk Home Directories
SMB1 disabled -- no workgroup available
- 挂载
##手动挂载
[root@database ~]# mkdir /smbdata
[root@database ~]# mount -t cifs //192.168.10.201/storage /smbdata/ -o username=user1,password=redhat
[root@database ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.8M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 20G 4.7G 16G 24% /
/dev/sda1 495M 196M 300M 40% /boot
/dev/sda3 5.0G 68M 5.0G 2% /home
tmpfs 371M 4.6M 367M 2% /run/user/0
//192.168.10.201/storage 20G 1.1G 19G 6% /smbdata
##永久挂载
[root@database ~]# cd /etc/samba/
[root@database samba]# vim key.txt
username=user2
password=redhat
[root@database samba]# chmod 400 key.txt
[root@database samba]# vim /etc/fstab
//192.168.10.201/storage /smbdata cifs defaults,credentials=/etc/samba/key.txt 0 0
[root@database samba]# umount /smbdata
[root@database samba]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 9.8M 1.9G 1% /run
tm pfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 20G 4.7G 16G 24% /
tmpfs 371M 4.6M 367M 2% /run/user/0
/dev/sda1 495M 196M 300M 40% /boot
/dev/sda3 5.0G 68M 5.0G 2% /home
[root@database samba]# mount -a
[root@database samba]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 9.8M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 20G 4.7G 16G 24% /
tmpfs 371M 4.6M 367M 2% /run/user/0
/dev/sda1 495M 196M 300M 40% /boot
/dev/sda3 5.0G 68M 5.0G 2% /home
//192.168.10.201/storage 20G 1.1G 19G 6% /smbdata