使用samba实现linux和windows文件共享

使用samba实现linux和windows文件共享

Samba是用于Linux/Unix系统与Windows之间共享文件的软件,本文记录一下Samba的安装及使用方法。

目录samba简介samba安装samba配置1. 查看windows工作组2. 关闭防火墙3. 修改配置文件4. 配置samba登录用户密码5. 启动服务6. windows访问共享文件smbclient使用登录samba服务器下载上传

samba简介

samba的功能都是通过一个CIFS(Common Internet File System)协议套件来管理的,这个名字是由微软引入的。

Samba是一个开源的CIFS实现,官网地址为 https://www.samba.org/samba/。

SMB (Server Message Block Protocol)协议是一种客户端/服务器通信协议,它主要包括smbd 和 nmbd,提供四种基本服务:

文件、打印服务:由SMB守护进程smbd提供

验证和授权:“共享模式”和“用户模式”

域解析:模拟Windows NT域系统,主要包括广播和点对点两种形式,还有一种是使用NBNS (NetBIOS Name Service)服务器,微软称为WINS服务(Windows Internet Name Service)

服务声明(浏览):声明网络上计算机提供的可浏览服务(文件和打印共享)列表。

前两个服务由smbd实现,后两个由nmbd来实现。

samba安装

centos7:

sudo yum install -y samba

sudo yum install -y samba-client

ubuntu:

sudo apt update

sudo apt install samba

sudo apt install samba-client

smbclient是一个smb服务器的客户端管理程序。

查看安装状态

$ whereis samba

samba: /usr/lib64/samba /etc/samba /usr/libexec/samba /usr/share/man/man7/samba.7.gz

$ rpm -qa | grep samba

samba-common-4.10.16-15.el7_9.noarch

samba-client-4.10.16-15.el7_9.x86_64

samba-client-libs-4.10.16-15.el7_9.x86_64

samba-common-libs-4.10.16-15.el7_9.x86_64

samba-libs-4.10.16-15.el7_9.x86_64

samba-common-tools-4.10.16-15.el7_9.x86_64

samba-4.10.16-15.el7_9.x86_64

$ smbd --version

Version 4.10.16

samba配置

1. 查看windows工作组

通过cmd命令 net config workstation 查看工作组:

C:\Users\10287>net config workstation

计算机名 \\DESKTOP-EHODIV3

计算机全名 DESKTOP-EHODIV3

用户名 Administrator

工作站正运行于

NetBT_Tcpip_{E484BACB-E20F-47EB-8727-EF799C2C041E} (0A0027000016)

软件版本 Windows 10 Home China

工作站域 WORKGROUP

登录域 DESKTOP-EHODIV3

COM 打开超时 (秒) 0

COM 发送计数 (字节) 16

COM 发送超时 (毫秒) 250

命令成功完成。

或者查看系统属性:此电脑 -> 属性 -> 高级系统设置 -> 计算机名 查看工作组

2. 关闭防火墙

配置之前先关闭linux防火墙

查看防⽕火墙状态

systemctl status firewalld

systemctl status firewalld.service

停⽌止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

[root@Server apTest]# systemctl start smb.service

[root@Server apTest]#

[root@Server apTest]#

[root@Server apTest]# netstat -antpu| grep smb

tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 5164/smbd

tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 5164/smbd

tcp6 0 0 :::139 :::* LISTEN 5164/smbd

tcp6 0 0 :::445 :::* LISTEN 5164/smbd

[root@Server apTest]#

关闭selinux

vi /etc/selinux/config

注释SELINUX=enforcing,添加SELINUX=disabled

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

# SELINUX=enforcing

SELINUX=disabled

# SELINUXTYPE= can take one of three values:

# targeted - Targeted processes are protected,

# minimum - Modification of targeted policy. Only selected processes are protected.

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

3. 修改配置文件

先创建一个共享目录或者使用已有的目录。

$ mkdir -p /var/samba/share

$ touch /var/samba/share/test.txt

配置读写权限

chmod -R 777 /var/samba

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

添加的共享名为myshare,这个名称是windows访问时会显示的名称,可以随意设置。

[global]

workgroup = WORKGROUP

security = user

passdb backend = tdbsam

printing = cups

printcap name = cups

load printers = yes

cups options = raw

[homes]

comment = Home Directories

valid users = %S, %D%w%S

browseable = No

read only = No

inherit acls = Yes

[printers]

comment = All Printers

path = /var/tmp

printable = Yes

create mask = 0600

browseable = No

[print$]

comment = Printer Drivers

path = /var/lib/samba/drivers

write list = @printadmin root

force group = @printadmin

create mask = 0664

directory mask = 0775

[myshare]

comment = my server share dir

path = /var/samba/share

public = yes

writable = yes

browseable = yes

guest ok = yes

guest only = yes

read only = no

4. 配置samba登录用户密码

可以使用groupadd 和 useradd命令添加用户组,下面我直接使用root用户:

$ smbpasswd -a root

New SMB password:

Retype new SMB password:

Added user root.

新输的密码就是远程登录密码。

5. 启动服务

配置文件设置完成后启动samba服务,并设置开机启动

启动 smb.service 和 nmb.service两个服务

systemctl start smb.service

systemctl start nmb.service

重启smb服务命令:systemctl restart smb.service

设置开机启动

systemctl enable smb.service

systemctl enable nmb.service

6. windows访问共享文件

win + r 输入samba服务器地址,访问samba共享文件

也可以在文件浏览器中输入地址 \\192.168.30.9 访问共享文件。

输入用户名密码后就可以访问Linux共享文件了!

可以对myshare中的文件进行读写操作以及文件创建。

smbclient使用

samba-client是linux中的客户端管理程序,如果要在linux/unix中访问samba文件可以使用smbclient工具。

登录samba服务器

$ smbclient //192.168.30.9/myshare

Enter SAMBA\root's password:

Try "help" to get a list of possible commands.

smb: \>

或者

$ smbclient //192.168.30.9/myshare/ -U root%12345678

Try "help" to get a list of possible commands.

smb: \>

登录成功后就可以对共享文件进行访问了:

smb: \> ls

. D 0 Sun Aug 22 10:17:09 2021

.. D 0 Sun Aug 22 09:03:44 2021

test.txt N 0 Sun Aug 22 09:30:59 2021

60273916 blocks of size 1024. 52785976 blocks available

smb: \>

下载

下载文件:

smb: \> get test.txt /root/samba/test.txt

getting file \test.txt of size 0 as /root/samba/test.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)

smb: \>

$ ll /root/samba/

total 0

-rw-r--r--. 1 root root 0 Aug 22 10:39 test.txt

指定日志存放目录

get test.txt /root/samba/test.txt -l /tmp/smb/smbalog

下载目录:

$ smbclient //192.168.30.9/myshare/ -U root%12345678 -c 'prompt OFF; recurse ON; cd /sambafolder/; lcd /tmp/smb/localfolder/; mget *' -l /tmp/smb/smbalog

上传

上传文件

smb: \> put /root/samba/test.txt test.txt

上传目录

$ smbclient //192.168.30.9/myshare/ -U root%12345678 -c 'prompt OFF; recurse ON; cd /sambafolder/; lcd /tmp/smb/localfolder/; mput *' -l /tmp/smb/smbalog

更多smbclient使用方法参考:https://www.samba.org/samba/docs/current/man-html/smbclient.1.html

参考文档:

https://www.liquidweb.com/kb/how-to-install-samba-on-linux-windows/

https://www.samba.org/samba/docs/SambaIntro.html

--THE END--

欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

更多尼泊尔内容

微软Surface Pro 11评测:一万买高通芯片合理吗? |凰家评测
世界杯365网站打不开

微软Surface Pro 11评测:一万买高通芯片合理吗? |凰家评测

🗓️ 07-08 👁️ 9682
华硕b150m-et V5是啥主板,性能怎么样
世界杯365网站打不开

华硕b150m-et V5是啥主板,性能怎么样

🗓️ 06-27 👁️ 1950
命盘的大限有什么含义命宫紫微斗数大限(大限在夫妻宫啥意思)
华为手机自带扫一扫在哪
世界杯365网站打不开

华为手机自带扫一扫在哪

🗓️ 07-10 👁️ 4543
如何中断别人家的WiFi
世界杯365网站打不开

如何中断别人家的WiFi

🗓️ 08-24 👁️ 796
绿螭骢的意思
bet28365365官网

绿螭骢的意思

🗓️ 07-14 👁️ 8051
厦门真正的富人区曝光,原来厦门最有钱的人都住这……
世界杯365网站打不开

厦门真正的富人区曝光,原来厦门最有钱的人都住这……

🗓️ 07-08 👁️ 7231
新浪微博如何发布新微博
office365邮箱手机版

新浪微博如何发布新微博

🗓️ 09-23 👁️ 835
抖音视频如何保存到手机相册?分享6种快速无水印保存的技巧