一、samba服务简介

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

二、samb服务基础

  软件包:samba

  协议:SMP(TCP139)CIFS(445)

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

  所需服务器:svr7(ip192.168.4.7)和myhost2

三、samba服务器的配置步骤

1、安装软件

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

2、起服务

[root@svr7 ~]# systemctl restart smb

3、samba帐号的管理

samba用户:a、提前建立同名的系统用户(可不设置密码)

b、采用独立于系统的密码

   管理工具:pdbedit

    添加用户:-a

      查询用户:-L

      删除用户:-x

[root@svr7 ~]# useradd user          //添加系统用户
[root@svr7 ~]# pdbedit -a user //添加与系统用户同名的samba用户
new password: //交互式设置密码
retype new password:
Unix username: //添加成功后显示的内容
NT username:
Account Flags: [U ]
User SID: S-------
Primary Group SID: S-------
......................
[root@myhost1 smb]# pdbedit -L         //查看samba用户列表
user::
user1::

4、配置文件及参数

[root@svr7 ~]# vim /etc/samba/smb.conf
[global] //全局配置 workgroup = MYGROUP [homes] //家目录共享 [printers] //打印机共享
[samba]
path = /smb/ //共享目录路径
; public = yes|no //默认no;公用的
; browseable = yes|no //默认yes;是否可以浏览
; read only = yes|no //默认yes;只读
; writable = yes|no //默认yes;可写
write list = user //默认无;可写入的用户列表
valid users = user,user1//默认所有用户;有效的用户列表
; hosts allow = 客户地址 //允许的客户机地址
; hosts deny = 客户地址 //禁止的客户机地址
; comment = 注释 //说明

5、修改用户对目录的读写执行权限

root@svr7 ~]# setfacl -m u:user:rwx /smb

6、SELinux对samba共享的保护

a、用getseboolbool查看selinux开关

[root@svr7 ~]#getsebool -a | grep samba_export
samba_export_all_ro --> off
samba_export_all_rw --> off //是否允许可读写共享

b、用setsebool控制SELinux开关

[root@svr7 ~]# setsebool -P samba_export_all_rw=on
[root@svr7 ~]# setsebool -P samba_export_all_ro=on //打开

四、客户端访问共享目录

所需软件包:samba-client

1、列出共享资源:smbclient -L 服务器地址

[root@myhost2 ~]smbclient -L 192.168.4.7
Enter root's password: //此处无需输入密码,直接回车
Anonymous login successful
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.2.] Sharename Type Comment
--------- ---- -------
................................

2、连接到目标主机的共享目录

[root@myhost2 ~]# smbclient  -U user //192.168.4.7/tools(共享名)
Enter user's password: //输入samba用户user的密码
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.2.]
smb: \> ls
. D Fri Jul ::
.. DR Fri Jul ::
D Fri Jul ::

配置过程中可能遇到的问题

、客户端登录samba时出现以下提示:
session setup failed: NT_STATUS_LOGON_FAILURE
该错误提示表示用户有误,可能是用户不存在,也可能是密码错误,或者只是在samba用户和系统用户及密码出现错误,总之就是用户和密码的问题。
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
该错误表示坏的网络名,表示共享目录不存在,或共享目录权限问题
可用setfacl -m给用户加权限
Connection to 192.168.4.7 failed (Error NT_STATUS_HOST_UNREACHABLE)
、客户端连接到samba共享目录时出现以下提示:
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
文件权限不足,或者存在selinux限制
调整文件的权限,并打开selinux开关
、执行setsebool -P 操作启用SElinux开关参数时失败,提示:Killed
内存不足,而且交换空间也不足
添加交换分区(1GB)在重试

samba文件共享服务配置一(共2节)的更多相关文章

  1. samba文件共享服务配置(multiuser机制)二 (共两节)

    smb客户端的multiuser挂载技术 --管理员只需要作一次挂载 --客户端在访问挂载点时,若需要不同权限,可临时切换新的共享用户[无需重新挂载] 实现方式 --挂载smb共享时启用multius ...

  2. Linux Samba文件共享服务配置

    http://blog.csdn.net/xht555/article/details/4631063

  3. samba文件共享服务的配置

    samba文件共享服务的配置 服务端配置 一.安装samba软件包 命令:yum -y install samba 查看是否安装samba. [root@Centos7-Server haha]# [ ...

  4. Centos6.5---samba文件共享服务配置(二)

    Linux-----samba服务配置(二) 需求: 某公司销售部门提出一个文件共享需求,要求部门共享目录有三个,第一个共享目录所有销售部门人员都具有可读可写权限:第二个共享目录所有销售人员只读权限, ...

  5. Centos6.5---samba文件共享服务配置(一)

    Linux---------samba文件共享服务配置(一) samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件. https://www.cnblogs.com/zo ...

  6. Linux基础学习-Samba文件共享服务

    使用Samba文件共享服务 Samba起源: 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了N ...

  7. 红帽7配置samba文件共享服务

    samba软件主要功能是为客户机提供共享使用的文件夹. 使用的协议是SMB(TCP 139).CIFS(TCP445). 所需的软件包:samba 系统服务:smb 1.安装samba服务 ~]#yu ...

  8. Linux Samba文件共享服务,安装与案例配置

    Samba服务器安装和配置 1:安装Samba服务器软件包 [root@localhost ~]# rpm -qa | grep samba [root@localhost ~]# yum -y in ...

  9. Samba文件共享服务

    Samba起源: 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了NFS开源文件共享程序:NFS ...

随机推荐

  1. JavaScript匿名函数和回调函数

    匿名函数的自调函数格式: (function(){ //代码 })(); <script type="text/javascript"> (function(){ al ...

  2. 配置Java的jdk环境变量

    1.classpath E:\Java\jdk1..0_20\jre\lib\rt.jar;.;E:\Tomcat\lib; 2.JAVA_HOME E:\Java\jdk1..0_20; 3.Pat ...

  3. ios开发 int,NSInteger,NSUInteger,NSNumber

    分享一下,在工作工程中遇到的一些不留心的地方: 1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备 ...

  4. Android权限全记录(转)

    常用权限: 读写存储卡装载和卸载文件系统 android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STOR ...

  5. python计算时间差的方法

    本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块date ...

  6. linux安装oracle11g步骤

    1. 修改用户限制 root用户:修改 /etc/security/limits.conf 文件,加上下面的参数 oracle soft nproc 2047 oracle hard nproc 16 ...

  7. cocos2d-x游戏引擎核心之九——跨平台

    一.cocos2d-x跨平台 cocos2d-x到底是怎样实现跨平台的呢?这里以Win32和Android为例. 1. 跨平台项目目录结构 先看一下一个项目创建后的目录结构吧!这还是以HelloCpp ...

  8. cocos2d-x游戏引擎核心之三——主循环和定时器

    一.游戏主循环 在介绍游戏基本概念的时候,我们曾介绍了场景.层.精灵等游戏元素,但我们却故意避开了另一个同样重要的概念,那就是游戏主循环,这是因为 Cocos2d 已经为我们隐藏了游戏主循环的实现.读 ...

  9. 动态调整UITableViewCell高度的实现方法

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPa ...

  10. JAVA中替换字符的方法replace和replaceAll 区别

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSe ...