0
点赞
收藏
分享

微信扫一扫

Samba 实现文件共享

覃榜言 2022-04-19 阅读 116
linux

Samba 实现文件共享

简介

Linux系统与Windows系统之间共享文件资源,小文件可以使用lrzsz,大文件可以使用samba。

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba 的安装

1、yum安装samba

 yum install samba

2、修改配置文件,Samba服务程序的主配置文件 /etc/samba/smb.conf。

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global] #全局设置
workgroup = SAMBA #工作组名称
security = share #安全验证方式,共有4种

passdb backend = tdbsam #定义用户后台类型,共有3种

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
[public] #共享名称
comment = cream mint #提示信息,任意写
path = /home/creammint #共享目录
public = yes #允许“所有人可见”
read only = no #允许写入操作

security = share | user | server | domain #安全验证的方式,总共有4种

  1. share: 客户端登录samba 服务器,需要提×××法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
  2. user: 客户端登录samba 服务器,需要提×××法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
  3. server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
  4. domain:使用域控制器进行身份验证

3、创建Samba用户

上面设置的是用户口令认证模式(user);也是默认的模式,需要创建访问共享资源的账户信息。Samba服务程序的用户账号必须在当前系统中已经存在。

[root@yunwei-test ~]# useradd samba
[root@yunwei-test ~]# id samba
uid=1011(samba) gid=1011(samba) groups=1011(samba)
[root@yunwei-test ~]# pdbedit -a -u samba
new password: #输入登录密码
retype new password: #再次输入确认
Unix username: samba
NT username:
Account Flags: [U ]
User SID: S-1-5-21-2653373350-3441109728-1676162852-1003
Primary Group SID: S-1-5-21-2653373350-3441109728-1676162852-513
Full Name:
Home Directory: \\shediaoprint\samba
HomeDir Drive:
Logon Script:
Profile Path: \\shediaoprint\samba\profile
Domain: SHEDIAOPRINT
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Thu, 09 Aug 2018 23:43:20 CST
Password can change: Thu, 09 Aug 2018 23:43:20 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@yunwei-test ~]#

pdbedit命令用于管理SMB服务程序的账户信息,格式为“pdbedit [参数] 账户”

  • -a 用户名 #建立Samba用户

  • -x 用户名 #删除Samba用户

  • -L #列出用户列表

  • -Lv #列出用户详细信息的列表

4、 创建共享目录,启动smb服务

[root@localhost ~]# mkdir /home/creammint
[root@localhost ~]# chown -R samba:samba /home/creammint
[root@localhost ~]# systemctl start smb
[root@localhost ~]# systemctl enable smb

5、Windows访问共享目录,windows键+R打开运行窗口,输入Samba服务器的IP地址。

在这里插入图片描述

6、输入pdbedit命令设置的用户名和密码登录。

在这里插入图片描述

就可以登录到共享界面中了,实现windows与linux的共享。

在这里插入图片描述

Samba服务配置

配置文件

主配置文件由两部分组成:
Global Settings :与Samba服务整体运行环境有关的选项,它的设置是针对所有共享资源的
Share Definition:针对共享目录个别的设置,只对当前的共享资源起作用

/etc/samba/smb.conf 文件的开头部分为samba 配置简介,告诉我们smb.conf 文件的作用及相关信息。还有以“;”开头,这些都是samba 配置的格式范例,默认是不生效滴,可以通过去掉前面的“;”并加以修改来设置想使用的功能。

pdbedit使用

pdbedit用于在samba服务器中管理用户,常见用法:

也可以使用"smbpasswd"命令添加和管理用户。

注意事项

网络连通性

安装和配置一步一步来,一般是不会有什么问题。但是更多的情况是在Windows的运行命令中,输入了\IP地址之后,没有任何反应。这是最麻烦的地方,因为完全不知道是什么原因导致的。

提供几个可能出问题的地方:

在配置Samba服务器的时候,可以将网络选择为bridge桥模式连接进行测试。

需要保证Linux下的IP和Windows下的IP处于同一网段中,且相互可以进行通信。

Linux 下直接配置ip

防火墙设置

如果防火墙不关闭,Windows和Samba之间的连通可能会被阻挡。(可以直接关闭防火墙或者设置端口放行,根据实际需要配置即可)

配置后需要重启Samba服务器。

权限问题

可能会出现权限不够的问题,修改你想要的那个文件的权限。

无法访问

如果使用windows访问samba,跳出以下对话框的错误:

无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次……或者直接重启Windows。

在cmd命令行中先查看连接然后断开已经建立的smb连接:

举报

相关推荐

0 条评论