一、简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
协议:SMB(TCP 139)、CIFS(TCP 445)网上邻居
软件包:samba;系统服务:smb
samba共享账号:默认情况下访问samba共享必须通过用户验证,专门用户访问samba共享时验证的用户与密码,与系统用户为同一用户,但是拥有独立密码,不能跟系统用户的密码一样。
常用命令:
smbpasswd 用来修改samba密码
格式:smbpasswd 【选项】账户名称
选项: -a 添加账户并设置密码
-x 删除SMB账户
-d 禁用SMB用户
-e 启用SMB账户
————————————————————————————————————————————————
二 部署samba服务(172.25.0.11)
关闭selinux 和防火墙
]# sed -i “/SELINUX=/c SELINUX=disable” /etc/sysconfig/selinux
#systemctl stop firewalld
2.1 安装软件、创建共享文件夹
]# yum -y install samba
]# mkdir /common
]# chmod 777 /common
]# echo “hello the world” > /common/smb.txt
2.2 创建用户,修改配置文件
]# useradd -s /sbin/nologin smbuser
]# smbpasswd -a smbuser
]# vim /etc/samba/smb.conf
[common]
comment = Common share
path = /common
browseable = yes
guest ok = no
writable = yes
】#cat /etc/samba/smb.conf
2.3 启动服务
]# systemctl start smb
]# systemctl enable smb
三 、客户端172.25.0.10访问samba服务器
]# setenforce 0
]# systemctl stop firewalld.service
3.1安装客户端软件
]# yum provides samba-client
]# yum -y install samba-client-4.6.2-8.el7.x86_64
3.2 查看共享信息
]# smbclient -L //172.25.0.11 (仅查看,直接回车)
使用samba用户登陆,(交互式访问共享文件夹):
]# smbclient -U smbuser //172.25.0.11/common
3.3 挂载共享文件夹到本地使用
]# mkdir /com
]# mount -t cifs //172.25.0.11/common /com -o username=smbuser,password=123
设置开机挂载:
]# echo “//172.25.0.11/common /com /smb cifs defaults,username=smbuser,password=123 0 0” > /etc/fstab
四 、配置文件解析
/etc/samba/smb.conf配置文件,[global]为全局配置段,其他的为共享段。
【global】
workgroup = MYGROUP //定义该Samba服务器所在的工作组或者域
server string = MY Samba Server // 设定机器的描述
hosts allow = ip地址或网段 //设置允许访问的网络和主机IP
hosts deny = //设置不允许访问的网络
printcap name = printcapFile //到printcapFile(一般是/etc/printcap)这个文件中取得打印机的描述信息
load printers = yes|no //设定是否自动共享打印机
log file = /var/log/samba/%m.log //日志记录文件
max log size = size //记录文件大小
security = security_level //定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。
user:samba的默认配置
password server = //当security设定为server或者domain的时候才有必要设定它。
encrypt passwords = yes|no //设置是否对密码进行加密,samba本身的密码文件/etc/samba/smbpasswd。
smb passwd file = /etc/samba/smbpasswd //用户密码文件
ssl CA certFile = sslFile //当samba编译的时候支持SSL的时候,/usr/share/ssl/certs/ca-bundle.crt。
username map = //指定用户映射文件(一般是/etc/samba/smbusers)
interfaces = //网络接口,
【myshare】(一般网络邻居里面可以看到的文件夹)
comment指的是对改共享的备注。
path 指定共享的路径
writeable指定了这个目录缺省是否可写
user设置所有可能使用该共享资源的用户
valid users指定能够使用该共享资源的用户和组。
invalid users指定不能够使用该共享资源的用户和组。
read list 指定只能读取该共享资源的用户和组。
write list指定能读取和写该共享资源的用户和组
admin list指定能管理该共享资源(包括读写和权限赋予等)的用户和组
public指明该共享资源是否能给游客帐号访问,也叫guest ok
hide dot files指明是不是像unix那样隐藏以“.”号开头的文件。
create mode指明新建立的文件的属性,一般是0755。
directory mode指明新建立的目录的属性,一般是0755。
sync always指明对该共享资源进行写操作后是否进行同步操作。
case sensitive指明是否对大小写敏感,一般选no,
force user强制把建立文件的属主是谁
wide links指明是否允许共享外符号连接;
max connections = n设定同时连接数是n。
delete readonly指明能否删除共享资源里面已经被定义为只读的文件。
有两类特殊的共享,分别是光驱和打印机
[cdrom]
[printers]
常见问题排错
1)NT_STATUS_BAD_NETWORK_NAME
输入了错误的共享名称,需要检查客户端请求
2)NT_STATUS_LOGON_FAILURE
说明登陆失败,一般由于账户名称或密码错误;
3)NT_STATUS_ACCESS_DENIED
说明访问被拒绝,权限不足,这里可能时samba服务设置的访问权限或者是服务器文件系统的访问权限不允许客户端访问。
4)Error NT_STATUS_HOST_UNREACHABLE
说明客户端无法连接samba服务器,一般由于网络故障或者防火墙问题,需要检查客户端与服务器的网络连接是否正常。
5)Not enough ‘’ charachters in service
说明客户端访问时共享路径输入有误。
——————————————————————————————
配置samba共享目录
1、 安装samba
yum -y install samba
2、 配置samba服务
创建用户
useradd -s /sbin/nologin smb_admin
smbpasswd -a smb_admin
chown smb_admin.smb_admin /var/mqsi/yfai/fileAdapter
chmod -R 777 /var/mqsi/yfai/fileAdapter
3、 更改配置文件
vi /etc/samba/smb.conf
comment = Shared Directories
path = /var/mqsi/yfai/fileAdapter
public = no
admin users = smb_admin
valid users = @smb_admin
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777
force directory mode = 0777
force create
mode = 0777
4、 启动服务
systemctl start smb nmb