Samba服务器基础搭建


环境:两台rockyLinux虚拟机,yum仓库与时钟同步均已配置完成,firewalld与selinux均以关闭;server作为服务器端,client作为客户端。

一、Samba服务器简介

samba通过两个服务来控制管理工作组和samba主机共享的目录,分别是:

nmbd:这个服务是来管理工作组、NetBIOS Name等的解析。主要利用UDP协议开启port137、port138来负责名称解析的任务。

smbd:这个服务的主要功能是用来管理samba主机共享的目录、文件与打印机等。主要利用可靠的TCP协议来传输数据

开放端口为139和445

二、安装Samba服务

安装samba

1
yum -y install samba samba-client //安装samba服务

配置samba

1
vim /etc/samba/smb.conf

要求:
将samba服务器端目录/smbshare共享,共享名为myshare,共享可以浏览,允许用户rose和用户marry访问
用户rose具有只读权限,marry具有读写权限 (rose和marry系统存在的用户)

在文件最后写入

1
2
3
4
5
[myshare]
browseable = yes
path = /smbshare
valid users = rose,marry
write list = marry

创建共享目录

1
2
3
4
[root@server /]# mkdir /smbshare
[root@server /]# cd /smbshare/
[root@server smbshare]# mkdir test1
[root@server smbshare]# touch t1

创建服务用户

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@server ~]# useradd -s /sbin/nologin marry
[root@server ~]# useradd -s /sbin/nologin rose
[root@server smbshare]# smbpasswd -a rose
New SMB password:
Retype new SMB password:
Added user rose.
[root@server smbshare]# smbpasswd -a marry
New SMB password:
Retype new SMB password:
Added user marry.
[root@server smbshare]# pdbedit -L
rose:1002:
marry:1001:

设置用户访问共享目录的权限

1
2
[root@server smbshare]# setfacl -m u:rose:r-x /smbshare
[root@server smbshare]# setfacl -m u:marry:rwx /smbshare/

启动服务

1
2
3
4
[root@server smbshare]# systemctl restart smb nmb
[root@server smbshare]# systemctl enable smb nmb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.

客户端验证

安装 samba-client cifs-utils包文件

1
yum -y install samba-client cifs-utils
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@client ~]# smbclient -L 192.168.100.111       //匿名用户访问samba服务
Password for [SAMBA\root]:
Anonymous login successful

Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
myshare Disk
IPC$ IPC IPC Service (Samba 4.19.4)
SMB1 disabled -- no workgroup available
[root@client ~]# smbclient -L 192.168.100.111 -U rose //samba用户访问samba服务
Password for [SAMBA\rose]: //这里输入rose服务用户的密码

Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
myshare Disk
IPC$ IPC IPC Service (Samba 4.19.4)
rose Disk Home Directories
SMB1 disabled -- no workgroup available
[root@client ~]# smbclient //192.168.100.111/myshare -U rose //samba用户流览samba共享资源
Password for [SAMBA\rose]: //这里输入rose服务用户的密码
Try "help" to get a list of possible commands.
smb: \>
smb: \>
smb: \> ls
. D 0 Mon Jul 22 22:47:17 2024
.. D 0 Mon Jul 22 22:47:17 2024
test1 D 0 Mon Jul 22 22:47:13 2024
t1 N 0 Mon Jul 22 22:47:17 2024

52363264 blocks of size 1024. 50600260 blocks available
smb: \>

交互式挂载

1
2
3
4
5
6
7
8
9
10
11
12
[root@client ~]# mkdir /test        //在客户端创建/test目录作为挂载点
[root@client ~]# mount -t cifs -o username=rose //192.168.100.111/myshare /test/
Password for rose@//192.168.100.111/myshare:
[root@client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 777M 9.0M 768M 2% /run
/dev/sda3 xfs 50G 1.7G 49G 4% /
/dev/sda1 xfs 960M 187M 774M 20% /boot
tmpfs tmpfs 389M 0 389M 0% /run/user/0
//192.168.100.111/myshare cifs 50G 1.7G 49G 4% /test

非交互式挂载

1
2
3
4
5
6
7
8
9
10
[root@client ~]# mount -t cifs -o username=marry,password=marry,sec=ntlmssp //192.168.100.111/myshare /test/
[root@client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 777M 9.0M 768M 2% /run
/dev/sda3 xfs 50G 1.7G 49G 4% /
/dev/sda1 xfs 960M 187M 774M 20% /boot
tmpfs tmpfs 389M 0 389M 0% /run/user/0
//192.168.100.111/myshare cifs 50G 1.7G 49G 4% /test

下次启动生效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@client ~]# umount /test    //卸载挂载
[root@client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 777M 9.0M 768M 2% /run
/dev/sda3 xfs 50G 1.7G 49G 4% /
/dev/sda1 xfs 960M 187M 774M 20% /boot
tmpfs tmpfs 389M 0 389M 0% /run/user/0
[root@client ~]# vim /etc/fstab
//在里面最后写入
//192.168.100.111/myshare /test cifs username=rose,password=rose,sec=ntlmssp 0 0
[root@client ~]# mount -a //重新加载挂载信息
[root@client ~]# systemctl daemon-reload
[root@client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 777M 9.0M 768M 2% /run
/dev/sda3 xfs 50G 1.7G 49G 4% /
/dev/sda1 xfs 960M 187M 774M 20% /boot
tmpfs tmpfs 389M 0 389M 0% /run/user/0
//192.168.100.111/myshare cifs 50G 1.7G 49G 4% /test

多用户挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@client ~]# umount /test
[root@client ~]# vim /etc/fstab //在里面修改刚刚添加的信息,在username前面添加multiuser
//192.168.100.111/myshare /test cifs multiuser,username=rose,password=rose,sec=ntlmssp 0 0
[root@client ~]# systemctl daemon-reload
[root@client ~]# mount -a
[root@client ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 777M 9.0M 768M 2% /run
/dev/sda3 xfs 50G 1.7G 49G 4% /
/dev/sda1 xfs 960M 187M 774M 20% /boot
tmpfs tmpfs 389M 0 389M 0% /run/user/0
//192.168.100.111/myshare cifs 50G 1.7G 49G 4% /test
[root@client ~]# su - sq //随意切换一个普通用户
[sq@client ~]$ cd /test
[sq@client test]$ ls
ls: cannot open directory '.': Permission denied //这里这个普通用户没有权限访问
[sq@client test]$ cifscreds add 192.168.100.111 -u marry //借用marry服务用户的权限来进行访问
Password:
[sq@client test]$ ls
t1 test1
[sq@client test]$ touch file2
[sq@client test]$ ls
file2 t1 test1

在windows系统进行访问

在导航栏这里输入
\192.168.100.111
然后就会弹出连接,输入用户名和密码就可以了
!
这样就可以访问了