其他分享
首页 > 其他分享> > SAMBA学习笔记

SAMBA学习笔记

作者:互联网

注:文中截图来自鸟哥linux私房菜,链接见文末。   一、SAMBA简介   SAMBA,原名:Server Message Block(SMB),与NFS、CIFS一样,SAMBA也是用于共享不同主机数据的一种文件系统。NFS用于在Linux系统主机之间共享文件,CIFS用于在windows系统主机之间共享文件,而SAMBA则实现了Linux系统主机与windows系统主机之间的文件共享。   就像NFS是基于RPC协议一样,SAMBA是基于NetBIOS(Network Basic Input/Output System)协议上开发的。NetBIOS是用于局域网少数计算机进行网络连接的一个通讯协议,无法跨越路由,SAMBA使用NetBIOS over TCP/IP实现跨路由通讯。   NetBIOS使用NetBIOS name识别不同的主机,在同一个群组中,每个主机的NetBIOS name必须是唯一的。所以SAMBA提供的文件共享服务主要分为两个步骤:  1. 通过NetBIOS name定位主机;  2. 根据权限控制资源读写。   SAMBA通过两个服务进程支持这两个步骤,分别是:  1. nmb:管理工作组,负责NetBIOS name解析。主要使用UDP协议,开启137,138端口来负责NetBIOS name解析的任务。  2. smb:管理SAMBA分享的目录、文件等。主要使用TCP协议,开启139,445端口进行数据传输。(445端口非必要)   SAMBA有两种联机模式:  1. peer/peer(Workgroup model,对等模式):各个主机地位平等,都可独立运作。不会出现一部计算机关闭,其他计算机就无法工作的情况。主机之间可同时互为client与server,但用户需要记住所有主机的账号与密码,很麻烦,适合小型网域。  2. domain model(主控模式):主控计算机(Primary Domain Controller,PDC)统一管理当前网域所有主机与用户的账号与密码。无论登录哪一个主机都需要先到PDC进行账号密码判断与授权。   二、SAMBA服务器 1. 安装
yum install samba samba-client samba-common
samba:主要提供了SAMBA服务器所需的各项服务程序,如:smb,nmb等。 samba-client:主要提供了SAMBA客户端所需的工具指令,如:mount.cifs、smbtree等。 samba-common:提供SAMBA服务器与SAMBA客户端公用的数据,如:smb.conf、testparm等。 2. 配置 (1)配置文件 SAMBA的主要配置文件:/etc/samba/smb.conf 主要包含两部分配置: [global]:全局整体参数配置。 [分享资源名称]:各个共享资源的参数配置。 (2)配置示例 不需要密码的分享配置: 需要密码的分享配置: (3)检验配置语法正确性
testparm
samba包含了很多默认设置(不在smb.conf文件中),可使用“-v“项查看全部设置:
testparm -v
3. 启动
systemctl start smb
systemctl start nmb
其中smb使用了端口139和445,但445不是必须的,可在smb.conf配置进行关闭:
smb ports=139
4. SAMBA用户账号与密码管理   通过SAMBA访问Linux系统上的资源,需要先取得Linux系统上的UID与GID,所以SAMBA的账号应该是Linux系统用户账号的其中一个,但由于Linux系统与SAMBA的密码验证方式及编码格式不同,SAMBA与Linux系统的密码文件并不相同。 (1)添加Linux系统用户账号并设置密码
useradd -G users smb1
passwd smb1
(2)添加samba用户账号
pdbedit -a -u smb1
(3)查看所有samba账号
pdbedit -L
(4)修改samba账号密码
smbpassword smb1
(5)删除samba账号
pdbedit -x -u smb1
注:管理 TDB 数据库格式建议使用 pdbedit 这个新的玩意儿来处理,smbpasswd 仅剩下修改密码的功能需记忆即可! 5. 查看SAMBA的状态
smbstatus
6. 安全 (1)SELinux SELinux默认关闭了很多SAMBA联机的功能,可使用相应命令进行查看与开启。
#查看samba相关的SELinux规则
getsebool -a | grep samba
#开启samba_enable_home_dirs
setsebool -P samba_enable_home_dirs=1
(2)防火墙 使用iptables进行管理: 由于smb及nmb并不支持TCP Wrappers ,所以也只能通过iptables来控制了。 通过smb.conf设置开放网域: (3)文件 利用Quota限制用户磁盘使用。   三、SAMBA客户端 1. 安装
yum install samba samba-client samba-common
2. 查询SAMBA服务器分享的资源信息 3. 挂载SAMBA服务器分享目录 4. 查看各个SAMBA服务器的所有分享资源

 

四、建议与问题排查 1. 建议(SAMBA服务器) (1)在规划Linux时,/home最好独立出一个partition,而且硬盘空间最好能够大一些。 (2)/home独立出来的partition可用独立运行quota作业,规范用户的最大磁盘使用量。 2. 问题排查 (1)SAMBA服务器遇到问题,查看用户登录日志 log file=/var/log/samba/log.%m %m:客户端主机的NetBIOS name 若客户端主机没有NetBIOS name,则登录信息会被记录到/var/log/samba/下的log.smbd或log.nmbd。 (2)权限问题,检查:SAMBA配置的权限、Linux文件系统的权限、SELinux规则。 (3)修改SAMBA密码的时候同步更新对应Linux用户的密码

 

 

参考: http://cn.linux.vbird.org/linux_server/0370samba.php

标签:samba,主机,笔记,学习,SAMBA,Linux,smb,NetBIOS
来源: https://www.cnblogs.com/wujuntian/p/16321544.html