Samba服务器配置
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议, 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、 打印机及其他资源。
Samba主要用于文件共享服务,尤其是跨linux和windows两个系统平台,例如通过windows将更新的网页上传到服务器。官方网站www.samba.org提供下载。
服务使用SMB协议,是一种基于netbios的协议。如果服务器在同一个局域网内,一般使用samba来共享文件;如果服务器在机房托管,一般使用FTP来共享文件。
安装Samba
1.使用yum -y install samba samba-client samba-common安装
2.rpm -qa | grep samba 确保都安装成功
3.查看Samba版本信息rpm -qi samba
配置samba
配置需求:
共享名 路径 权限
work /home/kaiz/work 所有人员包括来宾均可以访问
创建共享目录
# mkdir -p /home/kaiz/work
其中-p选项为递归创建目录(parents)
修改配置文件
CentOS7的配置文件位置 /etc/samba/smb.conf
不熟悉的话
可以查询配置文件的位置:
rpm -ql samba-common | grep smb.conf
显示结果为/etc/samba/smb.conf
/usr/share/man/man5/smb.conf.5.gz
建议先备份配置文件再进行修改,避免出错后从安装包中提取的麻烦。
1、 备份原有的配置文件
# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2、编辑配置文件
# vi /etc/samba/smb.conf
配置文件说明
一般的格式是:
[段名]
设置项 = 值
其中有两种注释
#描述的注释
;选项的注释
提取有效的设置,忽略#开始的行:
grep -v “^#” /etc/samba/smb.conf | more
配置熟练的话可以将配置文件中的有效配置提取并对原文件覆盖:
grep -v “^#” /etc/samba/smb.conf | more > /etc/samba/smb.conf
[global]
workgroup = 指定工作组或域
server string = 描述
security = 指定安全模式
hosts allow = 限定主机访问
max log size = 指定日至文件大小
其中security
1.share 无权限验证
2.user 默认,推荐,由Linux Samba服务器做验证
[homes]
comment = Home Directories 描述
browseable = no 将无权限共享目录隐藏
writable = yes 可写,no为只读
例如要设置自己的共享文件夹/home/kaiz/work配置为
[work]
comment = ShareWorking Directories
path = /home/kaiz/work
browseable = no
writable = yes
应用实例一
允许用户通过windows客户端访问自己的宿主目录
1.安装samba,无需修改配置文件,即可实现。
如果安装启用了SElinux,需要先执行:
setsebool -P samba_enable_home_dir on
或者先关闭防火墙
systemctl stop firewalld #停止防火墙
systemctl disable firewalld #禁用防火墙
再关闭SElinux
vi /etc/selinux/config
修改为SELINUX=disabled
重启生效
2.设置用户samba验证密码
smbpasswd -a 用户名
添加组
groupadd 组名
usermod -G 组名 用户名
改变共享目录的所属组:
chgrp 组名 共享目录
添加写权限:
chmod g+w 共享目录
检查共享目录的所属组:
ls -ld 共享目录
检查用户组内的成员:
grep 组名 /etc/group
或者将要共享的目录的所有者修改为拥有权限的用户
chown 用户名 共享目录
3.启动samba服务
centos5
/etc/rc.d/init.d/smb start
centos7
# systemctl restart smb
# systemctl reload smb
# systemctl status smb
用ps aux 检查进程状态
Samba服务有两个守护进程
Smbd 139端口监听tcp
Nmbd 137/138端口监听udp
测试
Linux上测试
#smbclient -L localhost -U kaiz
Windows7上测试
1. win+r快捷键打开运行窗口,输入\\ip\目录(其中目录可不写)
2. \\192.168.0.14
3. 弹出共享目录,双击共享的目录,输入之前配置的用户名密码,即可操作samba共享的文件