Linux /centOS7 Samba服务器配置详解

先满足前提条件配置静态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服务器,简单的方法就是将共享目录挂载到本地目录,访问也方便,具体格式如下:

原文地址:https://blog.51cto.com/14154700/2355487

时间: 2024-11-08 20:42:16

Linux /centOS7 Samba服务器配置详解的相关文章

linux squid代理服务器配置详解

安装编译环境yum install gcc gcc-c++ make -y 安装一个依赖件yum install perl-devel 解压squid包 没有自己下载tar xf squid-3.5.27.tar.gz -C /opt/ 进入squid包并定制功能cd /opt/squid-3.5.27/./configure \--prefix=/usr/local/squid \--sysconfdir=/etc \--enable-arp-acl \--enable-linux-netfi

Linux Centos7 日志文件详解

一.日志文件 日志文件对于诊断和解决系统中的问题很有帮助,因为在 Linux 操作系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会"有据可查".此外,当主机遭受袭击时,日志文件还可以帮助寻找袭击者留下的痕迹. 1.日志文件的功能和分类 2.日志文件保存位置和文件介绍 Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下.一部分程序共用一个日志文件,一部分程序使用单个日志文件,而有些大型服务器程序由于日志文件不止一个

CentOS7/RHEL7 systemd详解

CentOS7/RHEL7 systemd详解 目录1. 为什么是systemd(1) 关于Linux服务管理(2) SysV init的优缺点(3) UpStart的改进(4) systemd的诞生(5)为什么systemd能做到启动很快2. SysV init介绍(1) 什么是SystemV(2)SysV init的运行级别(3)SysV init运行顺序(4)SysV init和系统关闭(5)SysV init的管理和控制功能3. systemd的特性(1)systemd解决了那些问题?(

【转】linux中inittab文件详解

原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/inittab.inittab是一个不可执行的文本文件,它有若干行指令所组成. 理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬

centos7上systemd详解

centos7上systemd详解 发表于 2016-06-07 |  分类于 linux CentOS 7继承了RHEL 7的新的特性,例如强大的systemd, 而systemd的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变, 也大幅提高了系统服务的运行效率.但服务的配置和以往也发生了极大的不同,同时变的简单而易用了许多. CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统 system 和用户 user 之分, 即:/u

##redis在linux上的安装详解

redis在linux上的安装详解 1.redis介绍 (1)Redis是Remote Dictionary Server(远程数据服务)的缩写,由意大利人antirez(Salvatore Sanfilippo)开发的一款内存高速缓存数据库. (2)该软件由C语言编写,它的数据模型为key-value. (3)它支持存储的calue类型很多,包括String(字符串).hash(哈希).list(链表).set(集合).Zset(有序集合). (4)为了保证效率数据都是缓存在内存中,它也可以周

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义

Linux下chkconfig命令详解

Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset] chkconfig在没有参数运行时,显示用法.如果加上服务名,那么就检查这个服务是否在当前运行级启动.如果是,返

转载的 Linux下chkconfig命令详解

Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法: chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset] chkconfig 在没有参数运行时,显示用法.如果加上服务名,那么就检查这个服务是否在当前运行级启动.如果是