博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS7下Samba的安装与配置
阅读量:6156 次
发布时间:2019-06-21

本文共 4035 字,大约阅读时间需要 13 分钟。

一、Samba简介

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

   Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。

二、关闭SELinux和防火墙

a、临时关闭(不用重启机器): 

1
2
# setenforce 0                       ##设置SELinux 成为permissive模式  (关闭SELinux)
# setenforce 1                       ##设置SELinux 成为enforcing模式     (开启SELinux)

    

b、修改配置文件需要重启机器:

1
# vi /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled(需重启机器)

c、可自己做策略开放相应端口,这里我直接关闭:

1
2
# systemctl status firewalld.service       ##查看防火墙状态
# systemctl stop firewalld.service         ##关闭防火墙

三、安装Samba服务

①直接yum安装

1
# yum install samba samba-client

②启动并查看Samba

1
2
# systemctl start smb nmb        ##注:NMB对客户端提供NetBIOS服务
# systemctl status smb nmb

四、配置Samba服务

①配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# vi /etc/samba/smb.conf
=================== Global Settings[全局选项] ==============================
[global]
#
workgroup = WORKGROUP               
##设定Samba Server所要加入的工作组或域
server string = Samba Server Version %
v        
##设定注释,宏%v表示显示Samba的版本号
netbios name = zhi                
##设置Samba Server的NetBIOS名称
 
map to guest = bad user             
##开启匿名访问
     
# ----------------- Logging Options [日志选项]-----------------------------
log 
file 
/var/log/samba/log
.%m   
##设置日志文件存储位置及名称,宏%m(主机名),表示对每台                                      访问Samba Server的机器都单独记录一个日志文件
max log size = 50             
##设置Samba Server日志文件的最大容量,单位为KB,0代表不限制
# ---------------- Standalone Server Options[独立运行进程] ---------------------
security = share            
##共享级别:共享目录只能被授权的用户访问
passdb backend = tdbsam     
##建立安全账户管理数据库
# ----------------- Printing Options[打印选项]-----------------------------
#        load printers = yes          ##设置是否在启动Samba时共享打印机
#        cups options = raw           ##通用unix打印选项
#================== Share Definitions[共享参数] ==============================
  
[homes]                              
##设置用户宿主目录
        
comment = Home Directories        
##描述该共享:家目录
        
browseable = no               
##指定该共享是否可以浏览
        
writable = 
yes                  
##指定该共享路径是否可写
[printers]                          
##设置打印机宿主目录
        
comment = All Printers         
##描述:所有打印机
        
path = 
/var/spool/samba        
        
browseable = no
        
guest ok = no                 
##指定该共享是否允许guest账户访问
        
writable = no
        
printable = 
yes              
##指定是否可打印
[public]
        
comment = Public Stuff      
##定义说明信息
        
path = 
/home/samba          
##共享目录路径
        
public = 
yes             
##指定该共享是否允许guest账户访问
        
writable = 
yes
        
printable = no
        
write list = +staff       
##允许写入该共享的用户

注:

1
2
3
+ =====》 只在本机的密码文件组中查找
& =====》只在nis服务中查找
@ =====》先通过NIS服务器查找,nis找不到再到本机查找

②测试语法

③建立共享目录

1
2
3
# mkdir /home/samba
# cd /home/samba/
# touch samba.txt

五、测试

①在windows下输入\\192.168.10.128访问

②在Linux下输入smbclient //192.168.10.128/public访问

③配置只允许个别用户访问

a、配置smb.conf,添加如下

1
2
3
4
5
6
7
8
[
time
]
        
comment = Ashes Of Time
        
path = 
/share/time
        
valid 
users 
= zhi
        
write list = zhi
        
printable = no
        
create mask = 0755
        
directory mask = 0755

b、建立共享目录、添加相应用户和组

1
2
3
4
5
6
# mkdir -p /share/time
# groupadd admin
# useradd zhi -s /sbin/nologin
# cd /share/time
# echo "12345" > abc.txt
# pdbedit -a -u zhi              ##新建Samba用户

1
2
# pdbedit -L               ##查看Samba用户列表
# systemctl restart smb nmb        ##重启Samba

注: 可使用命令smbpasswd -a + 用户名为该用户添加Samba密码,但用户必须是系统用户。

c、验证

windows客户端验证:

在"这台电脑"右键,"映射网络驱动器"

提示输入用户名密码

输入后

并会在这台电脑上显示

错误:输入用户名、密码后弹出如下内容:

“指定的网络文件夹目前是以其他用户名和密码进行映射的。要用其他用户名和密码进行连接,首先请断开所有现有的连接到网络共享的映射。”

解决:使用命令net use查看

然后使用命令net use * /delete结束所有连接,即可连接。

Linux客户端验证:

1
$  smbclient -L 192.168.10.128 -U zhi

1
$ smbclient 
//192
.168.10.128
/time 
-U zhi

问题:能下载不能上传

解决:

1
# setfacl -m u:zhi:rwx /share/time/      ##赋予用户写权限

已经可以上传了

Linux进行挂载

1
2
3
sudo 
apt-get 
install 
cifs-utils     
##网络文件共享系统套件
sudo 
mkdir 
/mnt/samba
sudo 
mount 
-t cifs 
//192
.168.10.128
/time 
/mnt/samba 
-o username=zhi

Linux实现自动挂载

1
2
3
4
5
6
7
8
9
sudo 
vi 
/etc/fstab     
##添加如下
//192
.168.10.128
/time     
/mnt/samba   
cifs   credentials=
/etc/samba/zhi
.
passwd 
0 0
sudo 
vi 
/etc/samba/zhi
.
passwd         
##防止密码泄露,所以另建文件
username=zhi
password=abcdef
sudo 
chmod 
og=--- 
/etc/samba/zhi
.
passwd          
##设置该密码文件权限
sudo 
umount 
/mnt/samba                     
##卸载
sudo 
mount 
-a                       
##挂载fstab下的所有选项
ls 
/mnt/samba/

附:Ubuntu下安装配置Samba的wiki:

本文转自  结束的伤感  51CTO博客,原文链接:http://blog.51cto.com/wangzhijian/1698879

转载地址:http://fmsfa.baihongyu.com/

你可能感兴趣的文章
php:自定义session
查看>>
PHP专题-开发基础(七)
查看>>
让 Windows 7 定时待机
查看>>
配置isc-dhcrelay需要注意的事项
查看>>
isc-dhcp监听网口的实现步骤
查看>>
基于密钥的认证机制(ssh)
查看>>
Centos7.4 安装elasticsearch6.1.3集群部署
查看>>
【分享】java反射获取、设置、打印对象属性,对象转map基础工具
查看>>
unicode编码问题
查看>>
django 中 csrf问题 的解决方法
查看>>
搭建基于spring MVC框架 + RESTful架构风格技术总结
查看>>
爬虫基本原理及Request和Response分析
查看>>
discuz数据库迁移,改密码后,相关配置文件修改
查看>>
iOS SDK: Send E-mail In-App
查看>>
delete表1条件是另一个表中的数据,多表连接删除
查看>>
linux下安装SVN
查看>>
jq弹出层
查看>>
Pug+Stylus+Bootstrap入门
查看>>
nginx+memcache+tomcat配置(新手笔记)
查看>>
查看网络连接数
查看>>