samba:
启动服务:nmb.server;smb.server
会通过文件系统的方式输出给客户端
smb:Service Message Block;服务信息块 cifs:Common Internet File System,通用互联网文件系统
samba:Andrew Tridgell;热情奔放的桑巴舞,主要的协议 cifs,协议
1.功能:
-
文件系统共享;
-
NetBIOS协议;
-
打印服务;
2、工作模型
-
peer to peer(Work Group):工作组模型
-
domain devel:域模型
实现方式:LDAP:Lightweight Directory Access Protocol 轻量级目录服务访问协议
3、安装 :yum install samba
一、程序环境:
4、配置文件:
/etc/samba/smb.conf
5、主程序:
nmbd:Network Naming Service, 主要是为了完成NetBIOS域名解析 smbd:SMB/CIFS Service;根本的samba主程序
6、Unit File:
/usr/lib/systemd/system/nmb.service /usr/lib/systemd/system/smb.service
7、监听的端口:
137/udp, 138/udp 139/tcp, 445/tcp
8、客户端程序:
mount -t cifs = mount.cifs 专用于挂载samba文件系统的方式 smbclient:交互式命令行客户端工具;
注意:samba使用的是系统中的用户名,但是不会使用其密码,samba内部提供了一个内置的密码机制!
二、samba的配置:
/etc/samba/smb.conf
两类配置段:
-
全局配置:
[global] Network-Related Options ----网络相关的选项 workgroup = MYGROUP //定义工作组组名 server string = Samba Server Version %v //定义提示信息,%v表示宏定义samba的版本号 ; netbios name = MYSERVER //win主机为了在win解析对等网络的主机名时,当前主机用什么去相应 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/2 #启用的话 指明要监听的地址和接口(默认注释掉的信息)用空格分开,lo 表示监听本地的主机端口 ; hosts allow = 127. 192.168.12. 192.168.13. 做访问控制,白名单;127.表示127.0.0.1/8所在的网段,192.168.12表示192.168.12的网段 Logging Options ---------日志选项 log file = /var/log/samba/log.%m #表示每个访问的主机用单独的文件访问 %m表示那个主机的地址 max log size = 50 #记录的文件大小一旦超过这个大小就要滚动表示了,应当调大一点 51200 ;512M Standalone Server Options --------独立服务选项(就是我们只用来配置sambaserver的选项) security = user share (depricated) server (depricated) domain 定义安全选项为 账号密码登陆,账号为系统账号 passdb backend = tdbsam 定义密码存储机制 tdbsam Browser Control Options -------- 浏览器控制选项 Name Resolution ----------名称解析 Printing Options -------打印机驱动 load printers = yes 打印机驱动是否装载 cups options = raw 同用unix打印驱动 使用raw库
======== Share Definitions =========定义共享文件系统
[shared_ID]有三类:
-
[homes]:每个samba用户是否能够通过samba服务访问其家目录;
-
[printers]:打印服务;
-
[shared_FS]:用户自定义的共享目录;
常用指令:
-
comment:注释信息,解释作用;
-
path:本地文件系统路径;
-
browseable:是否可浏览,是否为用户可见;
-
guest ok:是否允许来宾账号访问;
-
public:是否公开给所有来宾与上一条意义一样;
-
writable:服务对所有的用户是否可写;
-
read only = no
-
write list:拥有写权限的用户或组列表这条与上一条不能通用;
-
用户名
-
@组名, +组名
三、samba用户管理命令:smbpasswd, pdbedit
smbpasswd [OPTIONS] USERNAME 传统命令
-h:获取帮助 -a:添加用户进samba用户 -x:删除用户 -d:禁用用户 -e:启用 -L:列出添加的用户
pdbedit:
-L:列出samba服务中的所有用户; -au:添加用户为samba用户,a表示添加,u指明用户名; -x:删除 -t:从标准输出接收密码;
四、访问服务:
1、smbclient交互式客户端程序:
(1) 查看目标服务上的共享
smbclient -L SMB_SERVER [-U USERNAME]
(2) 访问共享服务
smbclient //SMB_SERVER[/SHARE_NAME] [-U USERNAME]
2、mount.cifs
mount -t cifs //SMB_SERVER/SHARED_ID /MOUNT_POINT -o username=USER,password=PASS
注意:挂载操作中的用户,与-o选项中指定的用户直接产生映射关系;访问挂载,是以-o选项指定的用户身份运行,与本地用户以ID产生映射;
这里有些小东西要记住:当客户端主机用户B和服务端允许的samba权限为 读写 用户A上的 ID 号一样时会导致 B用户会对此samba系统有读写权限! 前提:B用户要对挂载的目录有读写权限,且A用户也要对共享的samba目录也要用读写权限才行(就是文件系统权限要开放!samba服务权限也要开放,才可以)
smbstatus命令:
显示samba服务的相关共享的访问状态信息; -b:显示简要格式信息; -v:显示详细格式信息;
自定义共享的方式:
[shared_ID] comment = path = guest ok = read only = public = browseable = write list =
测试语法命令 : testparm
注意:定义所用户在服务级的写权限write = yes (read only = no)不建议与write list同时使用;
实验1:客户端命令方式挂载
步骤1、改配置文件:
发现并不能上传,这是因为服务端centos用户不能对 /samba/tools 有写权限
步骤2、加上写权限
步骤3、成功
原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/52842