Samba
用于linux和windows之间传输文件
应用环境:
1、文件和打印机的共享,将其发布到网路中,以供用户访问
2、身份和权限的设置,有多种身份验证模式,可通过加密方式保护共享的文件和打印机
端口号:
139 445
Netbios协议,network basic Input/Output System,网络基本输入输出系统协议
主要作用:通过NETBIOS协议获得计算机名称,然后解析为对应的IP地址
Samba客户端登录的安全级别:
user 需要账号密码,由samba服务器来验证,服务器默认为这个级别
share 不需要账号和密码就可浏览服务器资源,安全性差
server 需要账号密码,可指定其他服务器进行身份验证
domin 需要账号密码,指定windows为域控制器,做身份验证,samba服务器只能作为域的成员客户机
AD 需要账号密码,samba服务器可作为域控制器
安装:
cd /run/media/root/CentOS\ 7\ x86_64/Packages/
服务端:
rpm -ivh samba-4.2.3-10.el7.x86_64.rpm
客户端:
rpm -ivh samba-client-4.2.3-10.el7.x86_64.rpm
启动服务:
systemctl start smb
windows上使用的方法:
win +R
\\192.168.142.161 #192.168.142.161为samba服务器的IP地址
linux上使用方法:
smbclient -L 192.168.142.161
smbclient -L 192.168.142.161 -U test1%test1
smbclient //192.168.142.161/test -U test1%test1
配置:
vim /etc/samba/smb.conf
workgroup = MYGROUP
server string = Samba Server Version %v
security = user #安全级别
[homes] #特殊共享目录
[printers] #共享打印机
例:
[share] #设置共享名称
comment=home... #描述
browseable=yes #是否允许查看,no的话,此文件隐藏
path=/share #共享路径
public=yes #是否允许匿名查看
vaild users=student #特定用户可访问
vaild users=@student #特定组
readonly=yes #只读
writable=yes #读写
write list=student #允许student用户读写
write list=@student #允许student组读写
----------
实战1:公司内有一工作组student,需要添加一个samba服务器作为文件共享服务器,共享/share目录,共享名为share,允许所有员工访问
mkdir /share
cp /etc/passwd !$ #拷贝/etc/passeord到/share下做测试。!$表示引用上条命令的最后一项
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
vim /etc/samba/smb.conf
workgroup = student
server string = test Samba Server Version %v
security = user #允许匿名访问
map to guest = Bad User
[share]
comment = student
path = /share
public = yes
注意:samba ver4 开始,取消了share安全登录级别,如果需要设置不需要账号密码登录,添加参数 map to guest = Bad User 即可
测试:
在win中访问192.168.142.161,可以看到passwd文件,也可下载,查看内容。
-------------
实战2:test组的用户通过账号密码认证,来访问/test目录
groupadd test
useradd -g test test1
smbpasswd -a test1 #添加smb账户test1,并设置密码
mkdir /test
cp /etc/passwd /test
vim /etc/samba/smb.conf
security = user
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
[test]
comment = student
path = /test
vaild users=@test
测试:
在win中访问\\192.168.142.161,需要登录,登陆后可看到test目录
其中test1为test1账户的家目录,是否显示由以下参数控制,
如果想在test目录中创建文件,需要同时给系统和文件写的权限
chmod 777 /test
vim /etc/samba/smb.conf
[test]
writable=yes
如果允许test组外的某个用户访问
[test]
write list = student1,student2
可对特定用户设置权限
host deny = 192.168.0.0 #禁止所有来自192.168.0.0/24网段的ip地址访问
host allow = 192.168.43.75 #允许192.168.43.75访问
注意:allow优先级高于deny
特定用户可以查看隐藏的文件 (通过新建特定的配置文件来实现)
全局下添加:
config file /etc/samba/smb.conf.%U #加载主配置文件时同时加载 /etc/samba/下以某个用户的用户名结尾的配置文件 如:smb.conf.test2
vim /etc//samba/smb.conf
[test]
comment = student
path = /test
vaild users=@test
browseable=no #隐藏文件设置选项
cp /etc//samba/smb.conf etc//samba/smb.conf.test
vim /smb.conf.test
[test]
browseable=yes #test组可以浏览
重启smb,测试,只有test2可以看到隐藏文件
如有错误,敬请指正~~