Ubuntu Samba配置简介

文章详细介绍了Samba的三种特殊配置:全局[global]、用户家目录[homes]和打印机[printers]共享。同时,列举了Samba的预定义变量,如%S表示当前服务名,%u表示当前服务的用户名等。此外,文章还阐述了Samba的全局属性,如workgroup、serverstring和安全级别设置,以及局部属性,如comment、path和用户访问控制。最后,提供了配置实例,展示了如何配置用户目录和新增数据共享。
摘要由CSDN通过智能技术生成

1.Samba 三种特殊的 [NAME] 

        [global]:其属性选项是全局可见的,但是在需要的时候,可以在其他<section>中定义某些属性来覆盖[global]的对应选项定义。

        [homes]:当客户端发起访问共享服务请求时,samba服务器就查询smb.conf文件是否定义了该共享服务,如果没有指定的共享服务<section>,但smb.conf文件定义了[homes]时,samba服务器会将请求的共享服务名看做是某个用户的用户名,并在本地的password文件中查询该用户,若用户名存在并且密码正确,则samba服务器会将[homes]这个<section>中的选项定义克隆出一个共享服务给客户端,该共享的名称是用户的用户名。

        [printers]:用于提供打印服务。当客户端发起访问共享服务请求时,没有特定的服务与之对应,并且[homes]也没有找到存在的用户,则samba服务器将把请求的共享服务名当做一个打印机的名称来进行处理。

2.Samba 预定义变量

        %S:当前服务名
        %P:当前服务的根目录
        %u:当前服务的用户名
        %U:当前会话的用户名
        %g:当前服务用户所在的主工作组
        %G:当前会话用户所在的主工作组
        %H:当前服务的用户的Home目录
        %V:samba的版本号
        %h:运行samba服务机器的主机名
        %M:客户端的主机名
        %m:客户端的NetBIOS名称
        %L:服务器的NetBIOS名称
        %R:所采用的协议等级(CORE/COREPLUS/LANMAN1/LANMAN2/NT1)
        %d:当前服务进程的ID
        %I:客户端的IP
        %T:当前日期和时间

3.Samba 属性选项

        共享服务名定义为[NAME],从某个共享服务名到下一个共享服务名之间定义了该共享服务的属性选项。

3.1全局属性  

        全局选项用于[global]的<section>选项定义中,其用于说明samba服务器的一些基本属性。其有些选项可以被其他<section>中的选项定义覆盖。

workgroup = MYGROUP
定义samba服务器所在的工作组或者域(如果设置security = domain的话)。

server string = Samba server
设定samba服务器的描述,通过网络邻居访问时可在备注中查看到该描述信息。

hosts allow = host (subnet)
设定允许访问该samba服务器的主机IP或网络,该选项的值为列表类型,不同的项目之间使用空格或逗号隔开,例如hosts allow = 192.168.3.0, 192.168.1.1,该选项设置允许主机192.168.1.1以及子网192.168.3.0/24内的所有主机访问该samba服务器。

hosts deny = host (subnet)
设定不允许访问该samba服务器的主机IP或网络,其格式与hosts allow一样。

guest account = guest
设定了游客的账号,在游客访问guest ok = yes的共享服务时,samba服务器将设置客户端以该游客账号来访问共享。

log file = MYLOGFILE
设定记录文件的位置。

max log size = size
设定记录文件的大小,单位为KB,如果设置为0则表示无大小限制。

security =
设定samba服务器的安全级,其有四种安全级别:share、user、server和domain,默认为user。关于这四种安全级别的详细信息,请查看相关文档。

password server = ServerIP

设定了用户账号认证服务器IP,其在设定security = server时有效。

encrypt passwords = yes | no
设定是否对密码进行加密。如果不对密码进行加密的话,在认证会话期间,客户端与服务器传递的是明文密码。但有些Windows系统默认情况下,不支持明文密码传输。

passdb backend = smbpasswd | tdbsam | ldapsam
设定samba服务器访问和存储samba用户账号的后端,在samba-3.0。23之前的默认值为smbpasswd,而之后的默认值为tdbsam。

smb passwd file =
设定samba的用户账号文件。对于源代码安装的samba,在samba-3.0.23之前,其默认值为/user/local/samba/private/smbpasswd;而samba-3.0.23之后,其默认值为/usr/local/samba/private/passwd.tdb。

include = smbconfFile
通过include选项可以包含其他配置文件,通过该选项和一些samba定义的变量可以设定与不同机器相关的配置。

local master = yes | no
设定该samba服务器是否试图成为本地主浏览器,默认值为yes。若设置为no,则该samba服务器永远不可能成为本地主浏览器,而设置为yes不代表其一定能成为本地主浏览器,只是让其能参与本地主浏览器的选举。

os level = N
N是一个整数,设定了该samba服务器参加本地主浏览器选举时的权重,其值越大,权重越大。os level = 0时,该服务器将失去选举的机会。

domain master = yes | no
设定samba服务器成为域浏览器。域浏览器从各个本地主浏览器处获取浏览列表,并将整个域的浏览列表传递给各个本地主浏览器。

preferred master = yes | no
设定该samba服务器是否为工作组里的首要主浏览器,如果设置为yes,则在nmbd启动时,将强制一个浏览选择。​

  3.2局部属性

        局部选项为除了global外的各个<section>中的参数。其定义了共享服务的属性。

comment =
设定共享服务的描述信息。

path =
设定共享服务的路径,其中可以结合samba预定义的变量来设置。

hosts allow = host(subnet)
hosts deny = host(subnet)
与全局的hosts allow和hosts deny含义相同,其会覆盖全局的设置。

read only = yes | no
设定该共享服务是否为只读,该选项有一个同义选项writeable。

user = user(@group)
设定所有可能使用该共享服务的用户,可以使用@group来设置群组group中的所有用户账号。该选项的值为列表,不同的项目之间使用空格或逗号隔开。在设置security = share时,客户端要访问某共享服务时提供的密码会与该选项指定的所有用户进行一一配对认证,若某用户认证通过,则以该用户权限进行共享服务访问,否则拒绝客户端的访问(设置security = share不是允许游客访问,只有guest ok = yes才是允许游客访问,切记!!!)。

valid users = user(@group)
设定能够使用该共享服务的用户和组,其值的格式与user选项一样。

invalid users = user(@group)
设定不能够使用该共享服务的用户和组,其值的格式与user选项一样。

read list = user(@group)
设定对该共享服务只有读取权限的用户和组,其值的格式与user选项一样。

write list = user(@group)
设定对该共享服务拥有读写权限的用户和组,其值的格式与user选项一样。

admin list = user(@group)
设定对该共享服务拥有管理权限的用户和组,其值的格式与user选项一样。

public = yes | no
设定该共享服务是否能够被游客访问,其同义选项有guest ok。

create mode = mode
mode为八进制值,如0755,其默认值为0744。该选项指定的值用于过滤新建文件的访问权限,新建文件的默认权限将与create mode指定的值进行按位与操作,将结果再与force create mode指定的值进行按位或操作,得到的结果即为新建文件的访问权限。

force create mode = mode
mode为八进制值,默认为0000。其作用参考选项create mode。

directory mode = mode
mode为八进制值,默认为0755。该选项指定的值用于过滤新建目录的访问权限,新建目录的默认权限将与directory mode指定的值进行按位与操作,将结果再与force directory mode指定的值进行按位或操作,得到的结果即为新建目录的访问权限。

force directory mode = mode
mode为八进制值,默认为0000。该选项的作用参考选项directory mode。

force user = user
强制设定新建文件的属性onwer。若存在一个目录,其允许guest可以写,则guest就可以删除。但设定force user为其他用户,并设置create mode = 0755,则gues用户不能够删除其新建文件。

4.配置举例

4.1 [homes]配置

        通常samb.conf默认只有[homes]的配置,配置/home目录下所有用户目录为独立的samba目录,且仅该用户可访问。

        homes是特殊的[NAME],默认就是/home目录,这里需要注意的%S,表示当前服务名。用户连接"\\192.168.18.xxx\zhouzh",这里的zhouzh就是%S。此时samba会查找[NAME]为[zhouzh]的选项,如果没有找到,就会用[homes]选项,发现valid users为%S。那么就直接去samba用户中查找,找到对应的用户。那么匹配密码访问通过。如果没有找到,或者密码不匹配,那么则访问不通过。

4.2 常用配置

        善于使用预定义属性,可以节约很多工作量。

        比如,当/homes挂在的硬盘满了,此时再扩展一个硬盘。挂载为/data/,同时也需要将/home目录下的每个用户可单独访问。

        可添加[data]的选项,并将valid users为%U。这里连接"\\192.168.18.xxx\data",此时samba发现配置里面有[data],就在[data]选项中查找对应属性。由于此时连接的用户名和密码跟之前相同,都是zhouzh,所以path就会变成/data/zhouzh,valid users就是zhouzh。同样在samba用户中查找,那么也可以访问通过,并连接到新的挂载目录。

        假如,上述配置文件内容设置了samba服务器工作在share安全级下,当客户端要访问zhouzh共享时,提交一个访问密码,服务器将该密码与选项user中指定的user1配对,然后到文件/etc/samba/smbpasswd中查询该用户user1是否存在,以及客户端提供的密码是否正确,若正确,则允许访问,否则拒绝访问(注:user1必须是服务器的系统账号,并通过工具smbpasswd或手工添加到文件/etc/samba/smbpasswd中)。另[zhouzh]的选项中path提供的路径/data/zhouzh在服务器必须存在,且权限正常,否则访问失败。

4.3 补充说明

        在/data/目录下需要手动创建用户名,并赋予权限。不然会连接不上。

chown -R zhouzh /data/zhouzh

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值