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

samba 需要开通哪些端口 samba用什么端口_vim

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目录

       

samba 需要开通哪些端口 samba用什么端口_服务器_02

其中test1为test1账户的家目录,是否显示由以下参数控制,

samba 需要开通哪些端口 samba用什么端口_服务器_03

如果想在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可以看到隐藏文件

如有错误,敬请指正~~