samba文件共享服务

Samba服务协议

SMB协议:服务消息块协议 { 139 |445 }

CIFS协议: 通用互联网文件系统


Samba软件包主要构成

samba: samba服务端软件

samba-common: samba公用组件

samba-client: samba客户端软件


Samba服务器主要程序

smbd:提供对服务器中文件、打印资源的共享访问

nmbd:提供基于NetBIOS主机名称的解析


Samba服务脚本和配置文件:

/etc/init.d/smb

/etc/samba/smb.conf

testparm: 配置文件检查工具


smb.conf文件配置内容

[global] :全局配置

[homes] :用户家目录共享设置

[printers] :打印机共享设置

smb.conf文件用户可以配置,每个配置项都是中括号形式例:[share]


配置项含义:

workgroup:工作组名称

server string:服务器描述信息

security:安全级别 { share | user | server |domain }

log file:日志文件位置,“%m”变量表示客户机地址

max log size:日志文件的最大容量,单位为KB

passwd backend:设置共享账户文件的类型

comment:对共享目录的注释、说明信息

path:共享目录在服务器中对应的实际路径

browseable:该共享目录在“网上邻居”中是否可见

guest ok:是否允许所有人访问,等效于“public”

writable:是否可写,与read only的作用相反

valid users:访问授权用户,多个以 , 隔开

write list:可写授权列表,多个以,隔开

hosts allow :允许访问主机

hosts deny:拒绝访问主机

{限制的对象可以是主机名、IP地址、IP网段,多个地址以空格火逗号隔开,网段表示:192.168.1.0/24192.168.1 (省去主机部分}

username map:别名映射配置项,指向映射配置文件etc/samba/smbusers

directory mask :用户上传(创建)目录的默认权限

create mask :用户上传(创建)文件得默认权限


配置:

在配置etc/samba/smb.conf时,为了方便观看,一般把注释、空行、配置样例行(;开头)去掉,可以用grep过滤和 > 重定向导入来去除。(建议事先备份一份),每配置一次都要重启一下服务service smb restart


匿名访问

创建一个共享配置项,path指定其路径,路径目录要存在

安全级别设置为:security = share

允许所有人访问:guset ok = yes

重启服务:service smb restart


需验证的共享

创建系统用户

useradd tom

添加samba用户并设密码(系统存在的用户名)

pdbedit -a tom

(smbpasswd -a tom)

安全级别设置为:security = user

关闭(删除)所有人访问:gusetok = no

重启服务:service smb restart


别名映射配置文件

/etc/samba/smbusers

配置:用户名 = 别名tom = zhangsan lisi)多个别名以空格相隔

编辑/etc/samba/smb.conf,在[global]中指定映射文件

usernamemap = /etc/samba/smbusers


用户授权(只在此项中用户可访问)

编辑/etc/samba/smb.conf,添加valid users 配置项

例:valid users =tom,root

写入授权(应删除writable配置项)

编辑/etc/samba/smb.conf,添加write list配置项

: write list= tom,root

客户端授权

编辑/etc/samba/smb.conf,添加hosts { allow | deny} 配置项

:hosts allow =192.168.1.9192.168.2192.168.3.0/24(允许此类地址访问)

hosts deny = 192.168.1.9192.168.2192.168.3.0/24(阻止此类地址访问)

注:hosts allowhosts deny不应同时出现


使用smbclient访问

匿名

smbclient -L 192.168.1.1 查看有哪些共享

smbclient //192.168.1.1/t78 访问

非匿名

smbclient -L 192.168.1.1 -U tom 查看

smbclient -U tom //192.168.1.1/t78 访问

mount挂载

挂载前要确定系统中安装了cifs-util工具

mount -o username=tom,password=密码 //192.168.1.1/t78/t78

开机自动挂载

/etc/fstab中添加

//192.168.1.1/t78/t78 cifs defaults,username=tom%密码 0 0


autofs自动挂载

需安装autofs自动挂载工具

在/etc/auto.master中添加

/mnt /etc/samba.misc

指定挂载主目录/mnt和挂载目录配置/etc/samba.misc

新建/etc/samba.misc并添加以下挂载配置项

samba -fstype=cifs,usename=tom,password=密码 ://192.168.1.1/t78