SMB:Server Message Block服务器消息块,IBM发布,最 早是DOS网络文件共享协议
Cifs:common internet file system,微软基于SMB发布
SAMBA:1991年Andrew Tridgell,实现windows和UNIX相通
SAMBA:(linux部署SAMBA服务可以实现三种服务/应用)
nmdb:netbios
smdb:cifs
winbindd:(windows的活动目录)
SAMBA服务可实现跨平台的网络文件共享服务
SAMBA的功能:(实现linxu,unix和win实现文件件共享)应用/
? 共享文件和打印,实现在线编辑
? 实现登录SAMBA用户的身份认证
? 可以进行NetBIOS名称解析
? 外围设备共享
计算机网络管理模式:
? 工作组WORKGROUP:计算机对等关系,帐号信息各自管理
? 域DOMAIN:C/S结构,帐号信息集中管理,DC,AD
相关包:
Samba 提供smb服务 yum软件包: samba.x86_64
samba-client 客户端软件
samba-common 通用软件
cifs-utils smb客户端工具 域名软件包:cifs-utils-devel.x86_64samba-winbind 和AD相关
samba-swat 图形化管理包
相关服务进程:
smbd 提供smb(cifs)服务 TCP:139,445
nmbd NetBIOS名称解析 UDP:137,138
NETBIOS(实现实现网络基本的输入输出系统):windows基于主机实现互相通讯的机制;
最长15字符
主配置文件:/etc/samba/smb.conf
centos7中主配置文件简化,
可以参此配置文件: /etc/samba/smb.conf.example
config file=/etc/samba/conf.d/%U 用户独立的配置文件
帮助参看:man smb.conf
语法检查: testparm [-v] [/etc/samba/smb.conf]
客户端工具:smbclient,mount.cifs
CentOS7不支持同一目录同时用nfs和samba共享,因为使用锁机制不同
linux服务器win访问
linux搭建服务 1 安装服务端 ~]# yum install samba.x86_64 2更改配置文件 ~]# vim /etc/samba/smb.conf [global] workgroup = WORKGROUP 3 添加系统用户添加为samba用户 ~]# smbpasswd -a smbuser1 4启动服务 ~]# systemctl restart smb.service 5windows访问:\\smb_server_IP\
实现samba用户:
包:samba-common-tools
工具:smbpasswd pdbeditsamba用户须是Linux用户,建议使用/sbin/nologin
管理SAMBA用户添加samba用户(添加系统用户为samba用户)smbpasswd -a <user>
pdbedit -a -u <user>
示例:~]# smbpasswd -a smbuser1
禁用samba用户
smbpasswd -d <user>
pdbedit -d -u <user>
启用samba用户smbpasswd -e <user>
pdbedit -e -u <user>
修改用户密码smbpasswd <user>
删除用户和密码:smbpasswd –x <user>
pdbedit –x –u <user>
查看samba用户列表:/var/lib/samba/private/passdb.tdb
pdbedit –L –v
查看samba服务器状态smbstatus
测试连接命令:
root@localhost ~]# smbclient -L 192.168.117.17 -U liubeiroot@localhost ~]# smbclient -L //192.168.117.17 -U liubei 查看刘备用户可以访问到的共享目录root@localhost ~]# smbclient //192.168.117.17/shared-U liubei 刘备用户登录到shared共享名的目录
显示系统所有用户
~]# getent passwd
显示samba所有用户
[root@localhost ~]# pdbedit -L
smbuser1:2008:liubei:2006:
usermod -aG 附加组名 用户名
配置文件:
/etc/samba/smb.conf继承了.ini文件的格式,用[ ] 分成不同的部分
全局设置:
[global] 服务器通用或全局设置的部分
特定共享设置:
[homes] 用户的家目录共享
[printers] 定义打印机资源和服务
[sharename] 自定义的共享目录配置
其中:#和;开头的语句为注释,大小写不敏感(;为可启用的选项)
宏定义:
%m 客户端主机的NetBIOS名 %M 客户端主机的FQDN
%H 当前用户家目录路径 %U 当前用户用户名
%g 当前用户所属组 %h samba服务器的主机名
%L samba服务器的NetBIOS名 %I 客户端主机的IP
%T 当前日期和时间 %S 可登录的用户名
SAMBA服务器的配置:
SAMBA服务器全局配置部分:
[shared] 共享名,客户端使用此名称连接
workgroup = WORKGROUP 指定工作组名称
server string = Windows 7 Ultimate 6.1 服务端版本号;主机注释信息
netbios name = magetest 使用nmb服务进行解析; 指定NetBIOS名
interfaces =lo 172.18.0.1/24 指定服务侦听接口和IP
hosts allow = 127. 192.168.123.7 允许哪些客户端可以访问;
可用“,” ,空格,或tab分隔,默认允许所有主机访问,也可在每个共享独立配置,如在[global]设置,将应用并覆盖所有共享设置
主机IP信息及主机名信息:
IPv4 network/prefix: 172.25.0.0/24 IPv4前缀: 172.25.0.
IPv4 network/netmask: 172.25.0.0/255.255.255.0
主机名: desktop.example.com
以example.com后缀的主机名: .example.com
文件写法示例:
hosts allow = 172.25.
hosts allow = 172.25. .example.com
hosts deny 拒绝指定主机访问
config file=/etc/samba/conf.d/%U 用户独立的配置文件
Log file=/var/log/samba/log.%m 日志记录的位置;不同客户机采用不同日志
log level = 2 日志记录的级别
max log size=50 日志文件达到50K,将轮循(rotate),单位KB
Security =user 认证方式只支持user
三种认证方式:
share:匿名(CentOS7不再支持)
user:samba用户(采有linux用户,samba的独立口令)
示例: security = user 只支持user
domain:使用DC(DOMAIN CONTROLLER)认证
passdb backend = tdbsam 密码数据库格式
配置目录共享
每个共享目录应该有独立的[ ]部分 :
[共享名称] 远程网络看到的共享名称
path = /app/samba 共享的真实路径;所共享的目录路径
comment = magedu file server 描述信息 注释信息
guest ok = no 是否允许来宾账户访问
public =no 能否被guest(匪名用户)访问的共享,默认no,和guest ok 类似
browseable = no 是否允许所有用户浏览此共享,默认为yes,no为隐藏
writable=yes 可以被所有用户读写,默认为no
read only=no 和writable=yes等价,如与以上设置冲突,放在 后面的设置生效,默认只读
write list = smb1 @smbgrp 指明允许指定用户或组可写,
三种形式:用户,@组名,+组名,用","分隔
注意: 如writable=no,列表中用户或组可读写,不在列表中用户只读 ;
若writeable = yes 则所有用户可写
valid users = smb1, smb2, smb3,smb4, smb5 仅指定用户才可以访问共享,如为空,将允许所有用 户,用户名之间用空格或","分隔
create mask = 0644 创建文件的默认权限
directory mask = 0755 创建目录的默认权限
编辑/etc/samba/smb.conf
[share]
path = /app/dir
valid users=wang,@admins
writeable = no
browseable = no
挂载CIFS文件系统
手动挂载
[root@centos7 ~]# mount //172.18.252.23/shared /mnt/smb -o user=smb1 或 [root@centos7 ~]# mount //172.18.252.23/shared /mnt/smb -o user=smb1%123 不需要交互 [root@centos7 ~]# mount //172.18.252.23/shared /mnt/smb -o user=smb1,password=123
开机自动挂载
1、将用户名密码写入文件并设置400权限,以实现对用户名密码的保护
[root@centos7 ~]# vim /etc/smb.txt username=smb1 password=123 [root@centos7 ~]# chmod 400 /etc/smb.txt
2、编辑/etc/fstab 系统自动挂载配置文件,进行配置;可以用文件代替用户名和密码的
[root@centos7 ~]# vim /etc/fstab //172.18.252.23/shared /mnt/smb cifs credentials=/etc/smb.txt 0 0
3、手动测试自动挂载
[root@centos7 ~]# mount -a
实验:实现SMB共享
samba服务端端
1、在samba服务器上安装samba包
yum -y install samba2、创建samba用户和组
groupadd -r admins useradd -s /sbin/nologin -G admins wang smbpasswd -a wang useradd -s /sbin/nologin mage smbpasswd -a mage
3、创建samba共享目录,并设置SElin
mkdir /testdir/smbshare chgrp admins /testdir/smbshare chmod 2775 /testdir/smbshare semanage fcontext -a -t samba_share_t '/testdir/smbshare(/.*)?' restorecon -vvFR /testdir/smbshare
4、samba服务器配置
vim /etc/samba/smb.conf security = user passdb backend = tdbsam [share] path = /testdir/smbshare write list = @admins systemctl start smb nmb systemctl enable smb nmb firewall-cmd --permanent --add-service=samba firewall-cmd --reloadsamba客户端访问
1、安装包
yum -y install cifs-utils2、用wang用户挂载smb共享并访问
mkdir /mnt/wang mount -o username=wang //smbserver/share /mnt/wang echo "Hello wang" >/mnt/wang/wangfile.txt
3、用mage用户挂载smb共享并访问
mkdir /mnt/mage mount -o username=mage //smbserver/share /mnt/mage touch /mnt/mage/magefile.txt
原文地址:http://blog.51cto.com/12105235/2115757