共计 2970 个字符,预计需要花费 8 分钟才能阅读完成。
先满足前提条件配置静态 ip,有相应的系统用户(文章中会有匿名访问的方法),为了实验的测试,要关闭防火墙,放行 Samba 的流量:
由于 Samba 服务包文件的依赖关系过多,所以选择用 yum 安装,执行以下操作删除系统默认的 yum 配置文件,并编写 yum 配置文件:
yum 配置文件的内容如下:
执行以下命令,安装 Samba 服务的所有有依赖关系的软件包:
安装成功后,执行以下命令,进入 Samba 服务的配置文件中,增加共享目录(在这之前我们要有用来共享的目录文件,以及系统用户账号)
Samba 服务的配置文件如下:
在“smb.conf”文件中存在三个特殊的配置段:
[global]:全局设置:这部分配置项的内容对整个 Samba 服务器都有效。
[homes]:宿主目录的共享设置:设置 Linux 用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将自动映射到该用户的宿主文件夹中。
[printers]:打印机共享设置:如果需要共享打印机设备,可以在这部分进行配置
Smb.conf 文件中常见的配置项及含义说明:
常见全局配置项的含义
workgroup:所在工作组名称;
server string:服务器描述信息;
security:安全级别,可用值如下:User(本服务器验证连接)、server(指定另一台服务器验证)、ads(由 Windows 域控制器验证);
log file:日志文件位置,“%m”变量表示客户机地址;
passwd backend:设置共享账户文件的类型;
comment:对共享目录的注释、说明信息;
path:共享目录在服务器中对应的实际路径;
browseable:该共享目录在“网上邻居”中是否可见;
guest ok:是否允许所有人访问,等效于“public”;
writable:是否可写,与 read only 的作用相反;
我们想要共享某个目录时,在配置文件的最后另起一行,按照上面的格式输入相应的信息,就可以了
以上是我要共享的目录,目录属主为用户“test”,为了方便,权限给到了最大,在实际中可以根据情况设置相应的权限,在 smb.conf 配置文件中写入以下字段:
其中各项含义如下:
comment:共享目录的描述信息;
path:设置对应共享目录在服务器上的文件夹路径;
public:是否所有人可以访问共享目录;
read only:是否只读,与“writable”作用相反;
valid users:共享目录的授权设置,允许哪些用户访问共享目录,这里设置了两个用户“test”和“root”。也可授权一个组,可以使用:“@组名”的形式,但也需要为组内的每个系统用户创建对应的 Samba 共享用户。
write list:设置共享目录为“只读”后,也可以单独授予某些用户有写入的权限(这里授权“root”用户可以写入);
写入上述信息后,保存退出即可,若要共享多个目录,另起一行以同样的格式写入即可;
保存退出后,可以使用:“testparm”命令工具对“smb.coonf”配置文件的正确性进行检查,如果发现有错误将会进行提醒。如下:
没有提示错误,接下来启动 smb 服务,并查看 smb 服务状态:
访问共享目录的用户密码不是系统用户的密码,但用户名一样,我们还要使用“pdbedit -a”创建和系统用户对应的 Samba 共享用户,如下:
执行相同的操作把用户 root 也添加到共享用户即可。
命令 pdbedit -L:可以列出所有的 Samba 共享用户,若只想查看某个用户,可以指定用户名作为参数,结合“-v”可以输出更详细的信息,如:pdbedit -vL test(输出共享用户 test 的详细信息)
使用“-x”选项并指定用户名,也可删除共享用户,例如:“pdbedit -x -u test
”可以删除共享用户 test
共享用户建立后,就可以使用客户端验证了:
以上“myshare”为我们设置的共享目录,“test”是默认共享的用户宿主目录
为了安全起见,也可以将一个共享用户映射为多个不同的名称(别名),这样就可以通过共享用户的别名和密码来访问共享资源了,需要先编写别名的文件,格式如下:
新打开一个文件
写入以下内容:
上述内容时把共享用户“test”创建了三个别名,分别是“mike”“jerry”“terry”
创建别名文件后,若要正常启用共享账号的别名,还需要修改主配置文件“/etc/samba/smb.conf”,添加全局配置项:“username map = /etc/samba/smbusers”,等号后面的路径为我们编写的别名文件路径;
【注意,当 Samba 服务的配置文件有改动的话,一定要重启(systemctl restart smb)或重载(systemctl reload smb)服务】
也可以在 smb 的全局配置中通过“hosts allow”和“hosts deny”来进行访问限制,前者用于指定仅允许访问共享的客户机地址,后者用于指定仅拒绝访问共享的客户机地址,两者任选其一即可。
访问地址限制一般应用于[global] 全局配置部分,也可应用于某个具体的共享配置段部分,限制的对象可以是主机名、ip 地址或者网络段地址(省去主机部分),多个地址之间以逗号或空格进行分隔。如下:仅允许来自 192.168.4.0/24、173.17.0.0/16 网段的客户机访问 Samba 服务器
也可以在共享目录或全局配置项中添加以下字段,表示允许匿名访问:
map to guest = Bad User
也可以在 Linux 客户端上访问 Samba 服务器,简单的方法就是将共享目录挂载到本地目录,访问也方便,具体格式如下:
更多 Samba 相关教程见以下内容:
CentOS 7.2 安装配置 Samba 服务器 https://www.linuxidc.com/Linux/2017-03/141390.htm
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍 https://www.linuxidc.com/Linux/2013-06/85445.htm
samba 安装使用图解 https://www.linuxidc.com/Linux/2017-03/141254.htm
CentOS7.2 下源码搭建 Samba 文件服务器 [原创] https://www.linuxidc.com/Linux/2017-06/144557.htm
如何在 Ubuntu 16.04 上安装和配置 Samba 服务器以进行文件共享 https://www.linuxidc.com/Linux/2017-11/148194.htm
CentOS 7 下 Samba 服务安装与配置详解 https://www.linuxidc.com/Linux/2017-11/148354.htm
Red Hat 6.5 下 Samba 服务器搭建 https://www.linuxidc.com/Linux/2017-07/145747.htm
如何在 Ubuntu 17.10 上使用 System-Config-Samba https://www.linuxidc.com/Linux/2018-01/150493.htm
Ubuntu 18.04 安装 Samba 服务器及配置 https://www.linuxidc.com/Linux/2018-11/155466.htm
: