linux文件服务之Samba

1、Samba   

         

Samba服务 

          Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务          器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。


作用:共享目录(smb协议)

软件:samba 服务端, samba-client 客户端 

配置文件:/etc/samba/smb.conf 

服务:smb, nmb 

端口:smb ---> 139/tcp,  445/tcp    提供文件共享功能

 nmb ---> 137/udp,  138/udp 提供解析计算机名称

配置文件:/etc/samba/smb.conf


全局配置


[global]

        workgroup = MYGROUP>>>设置工作组名称

        server string = Samba Server Version %v>>>显示samba软件版本信息


interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24>>>samba服务监听的IP地址


hosts allow = 127. 192.168.12. 192.168.13.>>>设置仅允许哪些主机可访问

hosts deny = 192.168.12.  192.168.1.1/24>>>拒绝哪些主机可访问

security = user>>> 基于用户认证的访问 

share>>> 匿名访问

共享目录配置


[共享名称]

comment = >>> 描述信息

path = /bj>>> 指定目录名称

browseable = yes >>> 可下载文件

writable = yes >>> 可上传文件

public = yes >>> 允许所有用户访问 

write list = user1>>> 仅允许user1可上传文件 


示例: 


环境描述:

Linux    192.168.122.105Centos 7.2 文件共享服务器

Windows/Linux 客户端 

需求:

通过samba软件将本地的/caiwu目录共享, 客户端可通过martin用户访问,仅允许其下载文件  

1) 关闭SELinux, 防火墙 


[root@file-server ~]# setenforce 0

[root@file-server ~]# getenforce 

Permissive

[root@file-server ~]# vim /etc/sysconfig/selinux 


[root@file-server ~]# systemctl stop firewalld.service 

[root@file-server ~]# systemctl disable firewalld.service 

2) 安装软件  


[root@file-server ~]# yum install -y samba samba-client

3) 编辑配置文件,共享/caiwu目录


[root@file-server ~]# mkdir /caiwu

[root@file-server ~]# touch /caiwu/{1..5}.mp3

[root@file-server ~]# vim /etc/samba/smb.conf 

        [caiwu]

        comment = It is a test

        path = /caiwu

        browseable = yes


4) 创建共享用户 


[root@file-server ~]# useradd martin

[root@file-server ~]# smbpasswd -a martin

New SMB password:

Retype new SMB password:

Added user martin.


[root@file-server ~]# pdbedit -L>>> 查看共享用户

martin:1001:

[root@file-server ~]# 



5) 启动服务 


[root@file-server ~]# systemctl start smb

[root@file-server ~]# systemctl enable smb

 

[root@file-server ~]# ss -antp | grep smbd

LISTEN     0      50           *:139                      *:*                   users:(("smbd",pid=2804,fd=38))

LISTEN     0      50           *:445                      *:*                   users:(("smbd",pid=2804,fd=37))

LISTEN     0      50          :::139                     :::*                   users:(("smbd",pid=2804,fd=36))

LISTEN     0      50          :::445                     :::*                   users:(("smbd",pid=2804,fd=35))

6) 测试访问 


Windows客户端: 


\\192.168.122.105


取消用户宿主目录的共享

[root@file-server ~]# vim /etc/samba/smb.conf 


#[homes]

#       comment = Home Directories

#       browseable = no

#       writable = yes


[root@file-server ~]# systemctl restart smb

Linux客户端:


[root@client ~]# yum install -y samba-client


[root@client ~]# smbclient //192.168.122.105/caiwu -U martin

配置允许martin用户可上传文件  


1) 编辑配置文件 


[root@file-server ~]# vim /etc/samba/smb.conf 

[caiwu]

...

writable = yes 

[root@file-server ~]# systemctl restart smb


2) 设置目录的本地权限  


[root@file-server ~]# setfacl -m u:martin:rwx /caiwu/

示例: 


通过samba软件将本地的/shichang目录共享,允许martin用户下载文件,允许admin用户上传文件  

1) 创建目录,创建共享用户 


[root@file-server ~]# mkdir /shichang

[root@file-server ~]# touch /shichang/{1..5}.jpg

[root@file-server ~]# 

[root@file-server ~]# useradd admin

[root@file-server ~]# smbpasswd -a admin

New SMB password:

Retype new SMB password:

Added user admin.

[root@file-server ~]# 

[root@file-server ~]# pdbedit -L

martin:1001:

admin:1002:

[root@file-server ~]# 



2) 编辑配置文件


[root@file-server ~]# vim /etc/samba/smb.conf 


[shichang]

    path = /shichang

    browseable = yes

    write list = admin


[root@file-server ~]# systemctl restart smb


[root@file-server ~]# chown admin /shichang/

[root@file-server ~]# ls -ldh /shichang/

drwxr-xr-x. 2 admin root 66 2月  21 12:00 /shichang/

[root@file-server ~]# 

3) 测试访问 


清除windows的共享缓存 

net use * /del 

windows设置网络映射驱动器访问共享  











本文转自 北冥有大鱼  51CTO博客,原文链接:http://blog.51cto.com/lyw168/1957466,如需转载请自行联系原作者
上一篇:泛型类传参小助手-泛型通配符 | 带你学《Java面向对象编程》之六十五


下一篇:文件服务器迁移——FSMT