php开发环境的搭建(六):Samba和Sftp的使用

原创 张晔璇  2018-07-31 13:17  阅读 1,115 次

Samba大部分人都知道是什么!用它就是为了方便,然而有时候配置确实有很多的坑!比如前段时间朋友配置Sanba的时候就是无法映射!搞了一整天,我试也不行(是在公司的电脑上),准备放弃的时候让另外一个人测试下(在其他公司的朋友)没想到直接映射成功了!我的天,随后就开始谷歌 百度一顿乱搞,还是没有解决,大概的原因是windows的问题,具体是哪里我也不清楚!所以我就推荐朋友使用SFTP进行映射,速度还不错,比samba稍慢!我也在之前推荐过这么一款软件!

那么接下来呢我就推荐一款这样的软件然后再给出一篇别人写的感觉还不错的samba配置教程


RaiDrive映射

这个实在是没有什么好说的,只是软件是英文的!哦还有一个就是Sublime Text 3 好像对他的兼容不太好!建议大家使用Vscode编辑器!当然还有其他的软件可能对Sublime Text 3兼容性比较好的就需要自行百度!嗯这款软件不提供下载地址,自行百度软件完全免费!


 

samba配置

 

一、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-1-5-21-2938114846-3327256202-3573822823-1000
Primary Group SID:    S-1-5-21-2938114846-3327256202-3573822823-513
  ......................
[root@myhost1 smb]# pdbedit -L         //查看samba用户列表
user:1001:
user1:1002:

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.3]

    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.3]
smb: \> ls
 .                                   D        0  Fri Jul 28 22:02:25 2017
 ..                                 DR        0  Fri Jul 28 21:32:58 2017
 123                                 D        0  Fri Jul 28 22:02:25 2017

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

1、客户端登录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)
2、客户端连接到samba共享目录时出现以下提示:
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
文件权限不足,或者存在selinux限制
调整文件的权限,并打开selinux开关
3、执行setsebool -P 操作启用SElinux开关参数时失败,提示:Killed
内存不足,而且交换空间也不足
添加交换分区(1GB)在重试

 

本文地址:https://www.codeku.me/archives/2510.html
版权声明:本文为原创文章,版权归 张晔璇 所有,欢迎分享本文,转载请保留出处!
NEXT:已经是最新一篇了

发表评论


表情