samba 可以实现Windows对Windows 、 Windows对Linux、Linux对Linux的文件传输
在centos7安装samba
yum install samba
启动samba
systemctl start smb
systemctl start nmb
samba守护进程
smbd 提供服务器中的文件和打印机共享 端口139 445
nmbd 提供基于NetBIOS主机名称的解析 端口 137 138
samba主要文件
/etc/samba/smb.conf 主配置文件
/etc/samba/smb.conf.example 配置案例
/etc/samba/lmhosts 对应NetBIOS名与主机名IP的文件
smb.conf配置文件分两个部分 一部分是全局设置 (Global Settings),还有一部分是共享设置( Share Definitions)
Global Settings [global] 全局设置 Share Definitions [homes] 用户目录共享设置 [printers] 打印机共享设置 [myshare]自定义共享设置
Global Settings参数
workgroup = MYGROUP #工作组名称 server string = Samba Server Version %v #服务器描述信息,%v是samba版本号
log file = /var/log/samba/log.%m #日志文件,%m代表的是客户端的NetBIOS名
max log size = 50 #日志文件大小,单位KB,0表示不限制
security = user
user #使用系统用户,samba密码登入
share #不需要密码就可以登入【新版已废弃】
server #由其他服务器提供认证【新版已废弃】
Share Definitions参数
comment #描述信息
path #共享路径
guest ok #允许所有人访问,等同于public
read only #所有人只读
writable #所有人可写
write list # 拥有写权限的用户
browseable #是否浏览可见
valid users#指定可以访问的用户
一些变量
%v #samba版本号 %S #任意用户可以登入 %m #客户端的NetBIOS主机名 %L #服务器端的NetBIOS主机名 %u #当前登入的用户名 %g #当前登入的用户组
访问samba服务器(注意防火墙和SELinux)
创建一个samba用户,其用户名是系统用户,但是可以设置新的密码只用于登入samba服务器
smbpasswd -a 系统用户名
在smb.conf建立新的访问目录
[myshare] #显示的文件名 comment=test file #信息描述 path=/samba #访问目录 browseable=YES #用户浏览可见 writable=YES #写权限
在Linux系统创建目录和赋予用户权限
mkdir /samba #在系统创建对应目录
setfacl -R -m u:test1:rwx /samba/ #给用户test1赋予rwx权限
重启服务
systemctl restart smb
systemctl restart nmb
用Windows访问samba服务
打开文件资源管理器或按windows键, 输入\ip,回车即可
输入账号和设置的samba密码
可以看到之前设置的共享目录,这样就可以访问/samba下面的文件了,同时也可以建立新的文件,因为该用户拥有读写执行的权限
注意权限设置,Linux是否能够真正操作(读写执行)文件,需要该服务对用户赋予操作文件的权限,同时也需要系统赋予用户对文件的操作权限