Samba 简介

相关服务进程
smbd 提供smb(cifs)服务 TCP:139,445

nmbd NetBIOS名称解析 UDP:137,138

安装: Linux安装SAMBA服务
yum -y install samba-client

主配置文件:/etc/samba/smb.conf 

帮助:man smb.conf

# 语法检查: testparm [-v] [/etc/samba/smb.conf]

客户端工具:smbclient,mount.cifs

Windows设置:

  • 关闭windows防火墙 》控制面板\所有控制面板项\Windows Defender 防火墙 image.png

  • 添加用户 demo < 给管理员权限,设一个简单的密码。 image.png

  • 在任意磁盘下创建一个文件夹 》高级共享 image.png

》共享此文件夹 》【确定】 image.png

》输入本机IP地址可以访问 image.png

》在共享文件夹share下新建一个文件 image.png

Linux设置

  • Linux安装SAMBA服务 yum -y install samba-client

Linux登录访问:

Windows:服务端
Linux:客户端

ls	- 查看共享目录文件
!ls 	- 查看当前目录文件
put	- 上传 Linux > Windows
get	- 下载 Windows > Linux

image.png

【put】 Linux创建文件,上传到Windows共享目录

image.png

image.png

【get】 将 windows 系统下的文件下载到 linux 目录下

image.png

Linux之间文件共享

  • 服务端

# 开机自启
[root@server ~]$ systemctl enable --now smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.

# 查看 139,445 端口
[root@server ~]$ ss -ntlp | grep smbd
LISTEN     0      50           *:139                      *:*                   users:(("smbd",pid=2876,fd=37))
LISTEN     0      50           *:445                      *:*                   users:(("smbd",pid=2876,fd=36))
LISTEN     0      50        [::]:139                   [::]:*                   users:(("smbd",pid=2876,fd=35))
LISTEN     0      50        [::]:445                   [::]:*                   users:(("smbd",pid=2876,fd=34))


  • 客户端
[root@Client ~]$ yum install -y samba-client

[root@Client ~]$ smbclient -L 10.0.0.10
Enter SAMBA\root's password:   #直接回车
Anonymous login successful

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.10.16)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

# 访问成功,默认共享家目录
  • 服务端
# 创建用户
[root@server ~]$ useradd -s /sbin/nologin smb1

# 设置密码
[root@server ~]$ smbpasswd -a smb1
New SMB password:
Retype new SMB password:
Added user smb1.

# 查看用户详细信息
[root@server ~]$ pdbedit -L -v
---------------
Unix username:        smb1
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-652242104-970740562-3160922690-1000
Primary Group SID:    S-1-5-21-652242104-970740562-3160922690-513
Full Name:            
Home Directory:       \\server\smb1
HomeDir Drive:        
Logon Script:         
Profile Path:         \\server\smb1\profile
Domain:               SERVER
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    三, 16 8月 2023 14:55:43 CST
Password can change:  三, 16 8月 2023 14:55:43 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  • 客户端访问
[root@Client ~]$ smbclient -L 10.0.0.10 -U smb1%123456

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.10.16)
	smb1            Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

  • SAMBA 服务端配置
[root@server-SAMBA ~]$ rpm -qc samba-common
/etc/logrotate.d/samba
/etc/samba/lmhosts
/etc/samba/smb.conf	# 主配置文件
/etc/sysconfig/samba

#进入这个文件
[root@server-SAMBA data]$ vim /etc/samba/smb.conf
# 添加:
[share1]
	path=/data/smbdata
	writable=yes

# 授权
 chmod 777 /data/smbdata/

# 重启服务
[root@server-SAMBA data]$ systemctl restart smb


  • 客户端测试
# 连接成功,上传文件测试

[root@Client ~]$ touch b.txt
[root@Client ~]$ smbclient //10.0.0.10/share1 -U smb1%123456
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Wed Aug 16 15:06:35 2023
  ..                                  D        0  Wed Aug 16 15:06:26 2023
  a.txt                               N        9  Wed Aug 16 15:06:35 2023

		38770180 blocks of size 1024. 31178548 blocks available
smb: \> put b.txt 
putting file b.txt as \b.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \> ls
  .                                   D        0  Wed Aug 16 15:17:42 2023
  ..                                  D        0  Wed Aug 16 15:06:26 2023
  a.txt                               N        9  Wed Aug 16 15:06:35 2023
  b.txt                               A        0  Wed Aug 16 15:17:42 2023

		38770180 blocks of size 1024. 31178548 blocks available
smb: \> 

  • 服务端添加用户smb2,smb3

[root@server-SAMBA ~]$ useradd smb2
[root@server-SAMBA ~]$ useradd smb3

[root@server-SAMBA ~]$ smbpasswd -a smb2
New SMB password:
Retype new SMB password:
Added user smb2.

[root@server-SAMBA ~]$ smbpasswd -a smb3
New SMB password:
Retype new SMB password:
Added user smb3.

[root@server-SAMBA ~]$ pdbedit -L
smb1:1001:
smb3:1003:
smb2:1002:

#指定用户可以上传文件
[root@server-SAMBA ~]$ vim /etc/samba/smb.conf
[share1]
        path=/data/smbdata
#       writable=yes
        writable=no     #可以不写,默认只读 
        write list=smb2,smb3     #指定smb2和smb3可写

  • Client客户端
# smb2 上传文件测试

[root@Client ~]$ smbclient //10.0.0.10/share1 -U smb2%123456
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Wed Aug 16 15:17:42 2023
  ..                                  D        0  Wed Aug 16 15:06:26 2023
  a.txt                               N        9  Wed Aug 16 15:06:35 2023
  b.txt                               A        0  Wed Aug 16 15:17:42 2023

		38770180 blocks of size 1024. 31177820 blocks available
smb: \> lcd /etc/	# 切换目录
smb: \> put passwd
putting file passwd as \passwd (221.0 kb/s) (average 221.0 kb/s)

# smb3 上传文件测试
[root@Client ~]$ smbclient //10.0.0.10/share1 -U smb3%123456
Try "help" to get a list of possible commands.
smb: \> lcd /etc/
smb: \> put group
putting file group as \group (82.3 kb/s) (average 82.3 kb/s)
smb: \> ls
  .                                   D        0  Wed Aug 16 15:35:34 2023
  ..                                  D        0  Wed Aug 16 15:06:26 2023
  a.txt                               N        9  Wed Aug 16 15:06:35 2023
  b.txt                               A        0  Wed Aug 16 15:17:42 2023
  passwd                              A     1358  Wed Aug 16 15:31:03 2023
  group                               A      590  Wed Aug 16 15:35:34 2023

		38770180 blocks of size 1024. 31178032 blocks available
smb: \> 

配置【所有人】可以访问

[root@server-SAMBA ~]$  vim /etc/samba/smb.conf
[share1]
        path=/data/smbdata
#       writable=yes
        writable=no
        write list=smb2,smb3
        public=yes	# 所有人可以访问
# 重启
[root@server-SAMBA ~]$ systemctl restart smb



# 客户端访问
[root@Client ~]$ smbclient //10.0.0.10/share1
Enter SAMBA\root's password: 	# 直接回车
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Wed Aug 16 15:35:34 2023
  ..                                  D        0  Wed Aug 16 15:06:26 2023
  a.txt                               N        9  Wed Aug 16 15:06:35 2023
  b.txt                               A        0  Wed Aug 16 15:17:42 2023
  passwd                              A     1358  Wed Aug 16 15:31:03 2023
  group                               A      590  Wed Aug 16 15:35:34 2023

		38770180 blocks of size 1024. 31178020 blocks available
smb: \> 


配置【特定用户】可以访问

[root@server-SAMBA ~]$  vim /etc/samba/smb.conf
[share1]
        path=/data/smbdata
#       writable=yes
#       writable=no     
#       write list=smb2,smb3  
#       public=yes 
        valid users=smb3	#只有 smb3 用户可以访问

[root@server-SAMBA ~]$ systemctl restart smb



# 客户端测试

[root@Client ~]$ smbclient //10.0.0.10/share1 -U smb1%123456
tree connect failed: NT_STATUS_ACCESS_DENIED

[root@Client ~]$ smbclient //10.0.0.10/share1 -U smb2%123456
tree connect failed: NT_STATUS_ACCESS_DENIED

[root@Client ~]$ smbclient //10.0.0.10/share1 -U smb3%123456
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Wed Aug 16 15:35:34 2023
  ..                                  D        0  Wed Aug 16 15:06:26 2023
  a.txt                               N        9  Wed Aug 16 15:06:35 2023
  b.txt                               A        0  Wed Aug 16 15:17:42 2023
  passwd                              A     1358  Wed Aug 16 15:31:03 2023
  group                               A      590  Wed Aug 16 15:35:34 2023

		38770180 blocks of size 1024. 31177972 blocks available

配置不允许所有用户浏览此共享

[root@server-SAMBA ~]$ vim /etc/samba/smb.conf
[share1]
        path=/data/smbdata
        valid users=smb3
        browsable=no

设定用户独立的配置文件

# 添加
[root@server-SAMBA ~]$ vim /etc/samba/smb.conf vim /etc/samba/smb.conf
[global]
        config file=/etc/samba/conf.d/%U

[root@server-SAMBA ~]$ mkdir /etc/samba/conf.d/

vim /etc/samba/conf.d/smb1
[share]
path=/data/smbshare1

[root@server-SAMBA ~]$ vim /etc/samba/conf.d/smb2
[share]
path=/data/smbshare2

[root@server-SAMBA ~]$ mkdir /data/smbshare1 | mkdir /data/smbshare2

[root@server-SAMBA ~]$ echo smb1 > /data/smbshare1/smb1.txt

[root@server-SAMBA ~]$ echo smb2 > /data/smbshare2/smb2.txt

# Linux 客户端进行访问

image.png

Linux 客户端配置永久挂载

[root@Client ~]$ yum install cifs-utils -y

[root@Client ~]$ mkdir /smb

[root@client ~]# vim /etc/fstab
//10.0.0.10/share /smb cifs username=smb1,password=123456 0 0

挂载测试

- 注:服务端不开机,客户端也凉凉

[root@Client ~]$ mount -a

[root@Client ~]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M  9.6M  901M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   37G  2.5G   35G    7% /
/dev/sr0                 4.4G  4.4G     0  100% /localrepo
/dev/sda1               1014M  151M  864M   15% /boot
tmpfs                    182M     0  182M    0% /run/user/0
//10.0.0.10/share         37G  7.3G   30G   20% /smb

配置永久挂载,不明文显示密码

[root@Client ~]$ umount /smb

[root@Client ~]$ vim /etc/fstab
//10.0.0.10/share /smb cifs credentials=/etc/user.txt 0 0

[root@Client ~]$ cat /etc/user.txt
username=smb1
passsword=123456

[root@Client ~]$ mount -a
[root@Client ~]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M  9.6M  901M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   37G  2.5G   35G    7% /
/dev/sr0                 4.4G  4.4G     0  100% /localrepo
/dev/sda1               1014M  151M  864M   15% /boot
tmpfs                    182M     0  182M    0% /run/user/0
//10.0.0.10/share         37G  7.3G   30G   20% /smb

# 授权
[root@Client ~]$ chmod 600 /etc/user.txt