Samba服务器的配置

简介:

Samba服务器的配置

一.samba 的基本概念

1.samba 的功能

samba是一种基于linux/unix平台中利用于smb(服务信息块)协议,实现以下功能的软件包:

nLinux/ UNIX与MS系统主机之间的文件及打印共享

n支持wins服务器解析和浏览

n支持Windows域控制器和成员服务器的身份验证

n可以模拟windows的域控制器

n支持SSL

2.samba的工作原理

samba利用smbd程序来监听139号端口实现主机之间文件及打印共享,利用nmbd监听137,138端口实现主机之间可以利用netbios名称相互访问

二.samba的配置

1. 安装samba的软件包.

#mount /dev/cdrom (插入第一张安装光盘)

#cd /mnt/cdrom/RedHat/RPMS

#rpm –ivh samba-common-2.2.7a-7.9.0.i386.rpm

#rpm –ivh   samba-2.2.7a-7.9.0.i386.rpm

#rpm –ivh samba-client-2.2.7a-7.9.0.i386.rpm

相关文件:

  /etc/samba/smb.conf               samba的核心配置文件

  /etc/rc.d/init.d/smb              samba的启动脚本

    /usr/sbin/smbd                   samba的守护进程

       /usr/sbin/nmbd                   netbois的守护进程

       /etc /samba/smdpasswd            存放samba用户口令

       /etc/samba/smbusers              存放samba用户与系统用户的映射情况

       /usr/sbin/swat                    samba的web配置工具

       /usr/bin/smbadduser               添加samba用户

      /usr/bin/smbpasswd                设置samba用户的口令

      /usr/bin/smbclient                  samba的客户访问工具

/usr/bin/smbprint                    samba的打印工具

/usr/bin/smbmount                    samba客户加载工具

/usr/bin/smbumount                   samba客户卸载工具

2. 修改/etc/samba/smb.conf

作用: 设置samba服务器选项和共享资源的设置

内容: #说明语句

[global]       //定义samba服务器的全局选项

…………

…………

全局参数=值

…………

…………

        [homes]        //共享用户主目录

…………

…………

资源共享参数=值

…………

…………

        [printers]       // 打印机共享

…………

…………

资源共享参数=值

…………

…………

        [public]          //共享目录设置

…………

…………

资源共享参数=值

…………

…………

以上声明为系统自带的声明,用户也可以根据实际需要定义共享目录:

            [自定义]自定义的共享

…………

…………

资源共享参数=值

…………

…………

说明:

(1) 全局参数

基本设置参数:Workgroup=域名/工作组名

功能:设定samba服务器所属工作组/域的名称)

实例:workgroup=linux

Netbios name=主机名称

功能:设置samba服务器的netbios名称

实例:netbios name=smbserver

Server string=字符串

功能:设置samba服务器的描述

实例:server string=samba server

interfaces=接口名/ip地址

功能:设置samba服务器的ip地址,如果不想使用默认IP地址或者想同时使用多个IP地址,可以设置这个选项

实例:interfaces=eth0 192.168.1.1/255.255.255.0

netbios aliases=主机名称

功能:设置netbios的别名

实例:netbios aliases=smb1 smb2

bind interfaces only=true/false

功能:设置主机配置多块网卡时,是否区分开不同网卡的数据报,默认为false

实例:bind interfaces only=false

安全设置参数admin users=用户名

功能:设置管理员账号,该用户拥有所有文件的存取权限

实例:admin users=smbadmin

socket address=ip地址

功能:指定samba服务器监听的ip地址

实例:socket address=192.168.0.1

security=user/share/domain/server

功能:设置samba的共享安全级别

注意:share 表示共享级访问,服务器不对客户机进行身份验证

     user   表示用户级访问,被访问的samba服务器要对客户机进行身份验证

server 表示服务器级访问,被访问的samba服务器请求另一台samba服务器对客户机进行身份验证

domain 表示域级访问,被访问的samba服务器请求另一台win NT域控制器对客户机进行身份验证

实例:security=share

encrypt passwords=yes/no

功能:指定是否使用加密口令

注意:对于windows客户机来说,该选项应该设置为yes

实例:encrypt passwords=yes

restrict anonymous=true/false

功能:指定服务器是否允许win NT/2000以匿名方式登录

实例:restrict anonymous=false

security mask=权限值

功能:设置windows 客户机改变samba服务器文件权限时所能更改的最大文件权限

 实例:security mask =0744

smb passwd file=文件路径

功能:指定samba用户密码的文件位置

实例:smb passwd file=/etc/samba/smbpasswd

map to guest=never/bad user/bad password

功能:设置当用户所输入的用名和密码不正确时的处理方式

注意:该选项只有security=user时才有效,该选项可以取以下三种值:

never 表示拒绝使用任何资源

bad user 表示用户输入用户名正确,但密码错误时,可以允许以guest登录

bad password 表示用户输入的用户名和口令都错误时,可以允许以guest登录

min passwd length=数字

功能:指定密码的最小长度,默认值为5位

实例:min passwd length=5

null passwords =yes/no

功能:设置是否允许用户密码为空

实例:null passwords=yes

password level=数字

功能:设置用户设置密码时,最多允许几个字符大小写不同

实例:passwd level=8

username level=数字

功能:当验证账号时,设定最多允许几个字符大小写不同

实例:username level=8

username map=文件路径

功能:指定SMB用户名与LINUX用户名映射文件的路径

实例:username map=/etc/samba/smbusers

unix passwd sync=false/true

功能:设置服务器是否允许samba用户口令与linux系统用户密码同步,当改变samba用户口令同时更新linux系统用户的口令

实例:unix passwd sync=false

password server=ip址址/主机名

功能:指定密码服务器的位置,当security值为server/domain必须设置该参数

实例:password server=192.168.3.1

update encryptd =yes/no

功能:设置客户在samba用户登录时,是否需要修改密码

实例:update encryptd=yes

guest account=用户名

功能:指定来宾账号的名称,默认为nobody

实例:guest account =guest

root directory=目录名

功能:指定samba服务器工作主目录,任何不在此目录下的资源则拒绝访问

实例:root directory=/etc/samba/

hosts allow= ip地址/主机名/域名

功能:设置允许访问的客户机

实例:hosts allow=192.168.1.1

hosts deny=ip地址/主机名/域名

功能:设置禁止访问的客户机

实例:hosts deny=192.168.0.2

打印机设置参数:

printcap name=路径

功能设定打印机的配置文件的位置

实例printcap name=/etc/printcap

load printers =yes/no

功能设定是否自动装载打印机的装载文件,当要做打印服务器时必须设置为yes

实例:load printers=yes

printing =bsd/lprng/aix/hpux/qnx/sysv/plp

功能:设置打印机相关指令时所采取的模式

实例:printing=lprng

printer name=名称

功能:设置打印机的名称

实例:printer name=hpprint

printer driver file=路径

功能:设置打印机驱动文件的位置

实例:printer driver file=/etc/samba/driver

日志设置参数: log file=路径

功能:定义日志文件的位置

实例:log file=/var/log/samba/%m.log

max log size=数字

功能:定义日志文件的最大千字节

实例:max log size=5000

运行效率参数:change notify timeout=数字

功能:设置服务器周期性异常通知

实例:change notify timeout=90

deadtime=数字

功能:客户端无操作多少分钟后服务器中断连接

实例:deadtime=10

getwd cache=yes/no

功能:是否启用cache功能

实例:getwd cache=yes

keepalive=数字

功能:服务器每隔多少秒向客户端发送keepalive包用于确认客户端是否工作正常

实例:keepalive=30

max open files=数字

功能:同一个客户端最多能打开的文件数目

实例:max open files=1000

max ttl=数字

功能:设定nmbd程序采用wins方式解析时,最大存活时间

实例:max ttl=259200

client code page=850/936

功能:设定客户端存取samba服务器的资源时所使用的字符编码表

实例:client code page=936

wins设置参数:

wins support=yes/no

功能:是否支持wins解析

实例:wins support=yes

wins server=服务器

功能:指定wins服务器的位置

实例:wins server=192.168.0.2

wins proxy=yes/no

功能:设置samba服务器是否支持wins代理功能

实例:wins proxy=yes

(2) 资源共享的选项

基本选项 :

comment=说明语句

功能:对共享资源的说明

实例:comment=file shared

path=路径

功能:共享资源的路径

实例:path=/soft

访问控制选项:

browseable=yes/no

功能:是否可以浏览共享目录,默认为yes

实例:browseable=no

printable =yes/no

功能:设置客户机是否可以使用共享打印机打印

实例:printable=yes

available=yes/no

功能:设置共享资源是否可用

实例:avalidable=yes

public=yes/no

功能:设置共享资源是否允许所有用户访问,除guest用户以外

实例:public=yes

guest ok =yes/no

功能:设置是否允许guest用户访问共享资源

实例:guest ok =yes

guest only=yes/no

功能:设置共享目录只允许guest用户访问

实例:guest only=yes

read only=yes/no

功能:访问用户对共享资源只读

功能:read only=yes

valid users=用户名/@组名

功能:指定允许访问共享资源的用户/组,多用户名用逗号分开,指定组时要在组名前加@

实例:valide users=u1,u2,@g1

invalid users=用户名/@组名

功能:指定禁止访问共享资源的用户/组,多用户名用逗号分开,指定组时要在组名前加@

实例:invalid users=@g2

create mode=权限值

功能:指定客户机在共享目录中创建文件的默认权限,默认权限为744

实例:create mode=755

directory mode =0775

功能:指定客户机共享目录中创建文件目录的默认权限,默认权限为755

实例:directory mode=755

writable=yes/no

功能:指定共享的路径是否可写

实例:writable=yes

write list=用户名/@组名

功能:设定允许读写共享目录的用户列表

实例:write list=abc,@g2

read list=用户名/@组名

功能:设定只读访问用户列表

实例:read list=abc,@cuo

preexec=路径

功能:指定客户机连接时要自动执行文件

实例:preexec=/bin/mount   /dev/cdrom

postexec=路径

功能:指定客户机断开连接时要自动执行的文件

实例:postexec=/bin/umount /dev/cdrom

root preexec=路径

功能: 指定客户机连接时要以ROOT用户身份自动执行的文件

实例:root   preexec=/bin/mount /dev/cdrom

root postexec=路径

功能:指定客户机断开连接时要以ROOT用户身份自动执行的文件

实例:root   postexec=/bin/umount /dev/cdrom

(3) 特殊变量

       %S:        当前服务名

       %P:        当前服务的根目录

       %u:        当前服务的用户名

       %h:        samba服务器的主机名

       %m:        客户机的NETBIOS名

       %L         samba服务器的netbios名

%v         samba版本号

%g给定%u的所在的主工作组名

%H给定的%u的宿主目录

%T当前日期和时间

文件实例:

根据以下要求/etc/samba/smb.conf文件:

n设置samba服务器的工作组名为linuxgroup,NETBIOS名为linux

n设置samba服务器的访问模式为share

n共享/soft目录,共享名为soft,该共享目录允许所有的用户读写操作

#vi /etc/samba/smb.conf

修改内容如下:

[global]

      Workgroup=linuxgroup

      Netbios name=linux

      Security=share                                              

      ………………

      ………………

      ………………

      [homes]

      ………………

      ………………

      ………………

      ………………

      [printers]

      ………………

      ………………

      ………………

      ………………

     [soft] //添加如下这个声明

comment=applic soft shared

path=/soft

browseable=yes

writable=yes

guest ok=yes

public=yes

3. 启动 samba服务

# service smb start

4. samba用户的建立

samba用户其实是系统用户的映射,所以建立samba用户先必须在系统中建立相应的用户,再通过特定方式映射为samba用户

方法一: smbadduser 用户名:用户名

实例:建立samba用户u1

  #useradd u1

  #passwd u1

  #smbadduser u1:u1

方法二:#smbpasswd –a 用户名

实例:

#useradd u2

#passwd u2

#smbpasswd –a  u2

三.Samba 的客户工具的使用

1. Smbclient

功能: (1)查看其他主机上共享资源

  (2)连接其他主机的共享目录

格式:#smbclient [参数] 主机ip或netbios名称

参数:  -N不提示输入用户口令

-L主机IP地址/netbios名称查看指定主机上的共享目录

-U 用户名指定连接其它主机的用户名

 实例:#smbclient -L 192.168.0.1   -U administrator

            #smbclient //192.168.0.1/c   -U administrator

   2. smbmount

功能: 加载smb文件系统

  格式:

smbmount //主机IP地址或netbios名/共享名 装载点 -ousername=用户名,password=密码

实例:

#smbmount   //192.168.0.1/c   /h2   -ousername=administrator

四.配置案例

配置要求:

设某公司有财务,技术,领导3个部门,我们分别为3个部门建立3个用户组为caiwu,network,lingdao; 三个部门里各有2个用户,我们建用户分别为caiwu01,caiwu02,network01,network02,lingdao01,lingdao02,具体如下:

1. 首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录

2. 建立一个caiwu的文件夹,希望caiwu组和lingdao组的人能看到,network02也可以访问,但只有caiwu01有写的权限

3. 建立一个lindao的目录,只有领导组的人可以访问并读写,还有network02也可以访问,但外人不可访问该目录

4. 建立一个文件交换目录exchange,所有人都能读写,包括guest用户,但每个人不能删除别人的文件

5. 建立一个公共的只读文件夹public,所有人只读这个文件夹的内容

配置过程:

1. 建立相应的用户和用户组

#groupadd caiwu

#groupadd network

#groupadd lingdao

#useradd caiwu01 -g caiwu

#useradd caiwu02 -g caiwu

#useradd network01 -g network

#useradd network02 -g network

#useradd lingdao01 -g lingdao

#useradd lingdao02 -g lingdao

然后我们使用smbpasswd -a caiwu01的命令为6个帐户分别添加到samba用户中

2. 建立相应的目录

#mkdir /home/samba

#mkdir /home/samba/caiwu

#mkdir /home/samba/lingdao

#mkdir /home/samba/exchange

#mkdir /home/samba/public

3. 改变目录的权限

我们为了避免麻烦可以在这里把上面所有的目录的权限都设置成777:

#chmod 777    /home/samba

#chmod 777   /home/samba/caiwu

#chmod 777   /home/samba/lingdao

#chmod 777  /home/samba/exchange

#chmod 777 /home/samba/public

4. 修改/etc/samba/smb.conf

#vi /etc/samba/smb.conf

修改内容如下:

[global]

workgroup = linux

netbios name=smbser

server string = xhnet’s Samba File Server

security = user

encrypt passwords = yes

#其他的基本上可以按照默认的来

[homes]

comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775

#homes段满足第1条件

[caiwu]

comment = caiwu
path = /home/samba/caiwu
public = no
valid users = @caiwu,@lingdao,network02
write list = caiwu01
#caiwu段满足我们的第2要求

[lingdao]

comment = lingdao
path = /home/samba/lingdao
browseable = yes

valid users = @lingdao,network02
write list = @lingdao

#lingdao段能满足我们的第3要求

[exchage]

comment = Exchange File Directory
path = /home/samba/exchange
public = yes

guset ok =yes
writable = yes

#exchange段基本能满足我们的第4要求,但不能满足每个人不能删除别人的文件这个条件,即使设置了mask也是没用,其实这个条件只要linux设置一个粘着位就行

chmod -R 1777 /home/samba/exchange

注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求

[public]

comment = Read Only Public
path = /home/samba/public
public = yes
read only = yes

#这个public段能满足我们的第5要求。

4.启动服务

#/etc/rc.d/init.d/smb restart

5.利用windows或linux主机测试SAMBA服务器



本文转自 sswqzx 51CTO博客,原文链接:http://blog.51cto.com/sswqzx/1082839

相关文章
|
1天前
|
人工智能 API 开发者
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
135 14
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
|
6天前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
46 13
|
8天前
|
存储 弹性计算 数据处理
阿里云服务器2核8G、4核16G、8核32G配置热门实例价格、性能与场景全攻略
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型c7、通用型g8i和通用型g8y五种实例可选,虽然配置相同,但是这些实例规格之间的价格差别是很大的。面对不同配置和类型的云服务器实例,有的新手用户往往因为不知道他们之间的区别,所以不知道如何选择。本文将针对常见的2核8G、4核16G、8核32G配置,深入剖析阿里云服务器中的经济型e、通用算力型u1、通用型g7及通用型g8y实例,以供大家参考和选择。
|
14天前
|
存储 弹性计算 人工智能
阿里云服务器2核8G/4核16G/8核32G配置热门实例规格对比与选购指南
如果我们是计划购买2核8G/4核16G/8核32G配置的阿里云服务器,在阿里云活动中一般会有经济型e、通用算力型u1、通用型g7、通用型g8i和通用型g8y几种常见的实例规格可选,尽管这些实例在配置上相似,但它们在性能、价格以及适用场景上存在显著差异。本文将深入解析这些实例规格的性能特点、价格差异及适用场景,为用户在阿里云服务器购买时提供详实的参考依据。
|
14天前
|
存储 弹性计算 固态存储
阿里云服务器配置怎么选择?根据用户类型及使用场景配置推荐
如何选择阿里云服务器配置?2025年全解析!个人用户可选68元/年的轻量应用服务器(2核2G、200M带宽),企业用户推荐199元/年的ECS通用算力型u1实例(2核4G、5M带宽)。针对不同需求,还有内存型、计算型、高主频型及GPU服务器等多规格实例。带宽选择需根据访问量,小流量应用3M即可,高流量建议10M起步。存储方面,系统盘40GB够用,数据盘按需选择ESSD或SSD云盘,确保I/O性能满足业务需求。阿小云为你整理最新攻略,助你高效选型!
|
14天前
|
Ubuntu 网络协议
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
51 11
|
14天前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
64 22
|
16天前
|
弹性计算 固态存储 ice
阿里云服务器ECS内存型2核16G、4核32G和8核64G配置实例、费用和性能参数表
本文整理了2025年阿里云服务器租赁价格表,涵盖2核16G、4核32G和8核64G配置收费标准。CPU内存比为1:8,提供多种实例规格如ECS内存型r8i、通用算力型u1等。价格由CPU内存、公网带宽及系统盘组成,支持优惠折扣(年付6.7折起)。文中详细列出各配置参考价格、公网带宽与系统盘收费,并对比不同实例规格性能,如Intel Xeon和AMD EPYC处理器系列,帮助用户选择高性价比方案。具体价格以阿里云官网为准。
79 4
|
25天前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
26天前
|
SQL 存储 数据库
KingBase服务器优化:详解Kylin参数配置。
通过适当的调整和优化这些关键参数,你的Kylin可以运行得更加流畅和高效。就像一个经过精心调校的赛车,无论是在赛道的直道还是弯道上,都能展现出卓越的性能。希望这次深入参数“操控盘”的旅行,能让你更好地理解和优化你的Kylin配置。记住,优化是一个持续的过程,不断地试验和改进,你的Kylin才能越来越强大。
52 20

热门文章

最新文章