Samba配置与使用

1.安装Samba

Centos7系统

yum -y install samba

2. 查看安装情况(可选)

rpm -qa |grep samba

在这里插入图片描述

3.设置开机自启

systemctl enable smb.service
systemctl enable nmb.service

4.启动服务

//启动服务
systemctl start smb.service
//查看启动服务的状态
systemctl status smb.service

5. 关闭防火墙

//查看防火墙状态
systemctl status firewalld
//关闭防火墙 
systemctl stop firewalld.service
//查看防火墙状态
systemctl status firewalld 

6.修改主配置文件

vim /etc/samba/smb.conf

Samba 4.10.16 security = share已经过时
配置文件详解参考:https://www.cnblogs.com/sharesdk/p/11079264.ht

共享目录为 /home/Linuxdir

[global]
	workgroup = myworkgroup
	security = user
	
	netbios name = samba server	
	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
[wbj]
	comment = Share Directories
	path = /home/Linuxdir
	guest ok = yes
	read only = no
	browseable = yes
	public = yes
//测试配置文件是否有错误
testparm

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ayra3F0k-1669789385449)(Samba配置与使用.assets/image-20221130122805513.png)]

7 建立共享目录

共享目录为 /home/Linuxdir , 在该目录下创建了a.txt,a.txt里随便写了一些文字
在这里插入图片描述

8 重启Samba

每次修改完配置文件后,必须重启samba服务才生效!!!

systemctl restart smb.service
systemctl status smb.service

9 创建一个账户,专门用于共享文件

此账户用于在Windows里访问Samba服务时使用。

useradd 用户名
smbpasswd -a linghua

在这里插入图片描述

10 访问Samba服务器共享文件

Linux中访问

查看虚拟机的ip地址

if config 
比如我的是192.168.10.177

访问Samba服务器

smbclient //192.168.10.177/wbj/

解释:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-es3lLZjl-1669789385451)(Samba配置与使用.assets/image-20221130141052134.png)]

Windows中

Windows键+r 打开如下界面,将ip地址输入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpxWxURK-1669789385451)(Samba配置与使用.assets/image-20221130141122256.png)]

然后输入第9步所创建的用户名和密码即可访问。

进入后结果如下:
linghua文件夹是我第9步所创建的用户名,在Windows里访问Samba时,就是用此用户名登录的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JSQzqzhB-1669789385452)(Samba配置与使用.assets/image-20221130141219959.png)]

在这里插入图片描述

[

samba配置完后用windows访问文件夹只能看见文件夹而看不到文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HaLqnIEd-1669789385454)(Samba配置与使用.assets/image-20221130142142170.png)]

补充说明

Samba的全局配置

全局设置部分:

[global]

samba服务器的全局设置,对整个服务器有效。

配置是以key-value的形式。

  1. workgroup

    语法:workgtoup = 工作组;

    默认:workgroup = MYGROUP

    说明:设定 Samba Server 的工作组

    例:workgroup = workgroup 和一台Windows设为一个组,可在网上邻居可中看到共享。

  2. server string

    语法:server string = 字符串;

    默认:sarver string = Samba Server

    说明:设定 Samba Server 的注释

    其他:支持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端用户名。

    例:server string = this is a Samba Server 设定出现在Windows网上邻居的 Samba Server 注释为 this is a Samba Server

  3. hosts allow

语法:hosts allolw = <IP地址>; …

说明:限制允许连接到 Samba Server 的机器,多个参数以空格隔开。可以还是具体的ip地址 也可以是网段。

例:hosts allow = 192.168.1. 192.168.0.1 表示允许192.168.1 网段的机器,及网址为 192.168.0.1 的机器连接到自己的 samba 服务器。

  1. guest account

语法:guest account = <帐户名称>;

说明:设定访问 samba server 的来宾帐户。

例:guest account = test 设定访问 samba server 的来宾帐户以test用户登陆,则此登陆帐户享有test用户的所有权限。

  1. log file

语法:log file = <日志文件>;

默认:log file = /var/log/samba/%m.log

说明:设定 samba server 日志文件的储存位置和文件名(%m代表客户端主机名)

  1. security

语法:security = <安全等级>;

默认:security = user

说明:设定访问 samba server 的安全级别共有四种:

share—不需要提供用户名和密码。

user----需要提供用户名和密码,而且身份验证由 samba server 负责。

server–需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台 samba server作身份验证。

domain–需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证。

需要注意,只要输入用户名和密码的级别,其用户名一定首先也是Linux系统内的用户。

  1. password server

语法:password server = <IP地址/主机名>;

默认:password server = < NT-Server-Name >;

说明:指定某台服务器(包括windows 和 Linux)的密码,作为用户登入时验证的密码。

其他:此项需配合 security = server时,才可设定本参数。

  1. smb passwd file

语法:smb passwd file = <密码文件>;

预设:smb passwd file = /etc/samba/smbpasswd

说明:设定samba的密码文件。

Samba的共享配置

共享设置部分可以有很多段,都用[ ]标志开始的。读者根据需求修改。

该部分主要涉及Samba服务器需要共享的资源。

[xxxxxxx] 共享文件名,不需要与实际文件名一致,可以随意起。

​ comment = 对这个共享分支目录的描述。例如 comment = my first Samba

​ path = 要共享的目录,必须为绝对路径。例如 path= /root/aaa

​ public = yes 是否允许所有人都能够看到此目录,no为看不到,yes为看到。

​ writable = yes 是否允许用户在此目录下可写,如果可写,还需要目录具有写权限。

​ read only = yes 设置用户是否只读。

​ vaild users = 用户名 设置只有特定用户是有效用户。

samba设置举例

例1.帐户对其根目录的访问权限。

[homes]

comment = Home Directories

writable = yes

valid users=%s 可访问的用户,samba 会自动将%s转换成登录用户。

Create mode=0664 默认的文件权限。

Directory mode=0775 默认的目录权限。

例2.设置/ a/b/c为共享目录,不可写。

[shareC] 注:设置共享目录时,[ ]里随意写,就是一个标识而已,自己知道是共享那个目录即。

comment = This is sharing directory c (工地英语,注释也随意写,让自己明白这个共享目录是干啥的就行)

path = /a/b/c 指定共享目录。

writable = no 不可写。

例3.设置公用的可访问的目录 /mmm/ggg

[publicShare]

comment = Public Share

path = /mmm/ggg

public = yes

writable = yes

printable = no

例4.指定一个共享目录,仅能对 用户 Tony开放。

[Tony]

comment = This directory is shared for Tony

path = /uuu/ccc/sss

valid users = Tony 可以访问的用户

public = no 其他用户看不到。

writable = yes 注意Tony对这个目录需要实际写访问的权限,即可能需要修改这个目录的权限。

例5.共享一个目录给两个用户,在这个共享目录中他们能放置文件且分别属于各自所有。

[rose And jack]

comment = This directory is shared for rose and jack

path = /usr/somewhere/shared

valid users = rose jack

public = no

writable = yes

printable = no

create mode = 0765 默认的文件权限; directory 默认的目录权限。

在这个设置中,目录将能被两个用户同时使用。非常明显,能扩展为多个用户的情况。

检查配置正确性

输入testparm ,然后敲两下回车

查看服务器共享目录

在Linux客户端使用命令smbclient。

 smbclient -L  Samba服务器ip地址
 例如:
 smbclient -L  192.168.10.177

Windows客户端访问共享目录

在windows的客户端。直接使用“开始-运行”输入\IP地址即可
快捷键 :Win+r

猜你喜欢

转载自blog.csdn.net/weixin_60664694/article/details/128114528