前面介绍的NFS服务器的用来linux和linux系统之间共享文件和目录的,那如果是linux和windows之间需要共享修改文件该如何操作呢。这据需要用到SAMBA系统。我们首先来看下SAMBA系统如何搭建。

1 ubuntun系统没有自带SAMBA,所以需要额外安装

apt install samba

2 安装好后开始启动samba

root@zhf-linux:/home/zhf# /etc/init.d/samba start

[ ok ] Starting nmbd (via systemctl): nmbd.service.

[ ok ] Starting smbd (via systemctl): smbd.service.

[ ok ] Starting samba-ad-dc (via systemctl): samba-ad-dc.service.

3 可以通过ps -aux查看samba的启动

root@zhf-linux:/home/zhf# ps -aux | grep samba

root 6153 0.0 0.0 5104 844 pts/0 S+ 09:08 0:00 grep --color=auto samba

root@zhf-linux:/home/zhf# ps -aux | grep nwbd

root 6157 0.0 0.0 5104 832 pts/0 S+ 09:08 0:00 grep --color=auto nwbd

(一)windows免密码登陆linux共享目录:

Samba服务器主要配置文件为/etc/samba/smb.conf。
我们首先来看下windows中不用输入密码访问Linux共享目录的方法。因此首先编辑smb.conf文件。将文件中的内容进行如下修改;

security=share

并在文件末尾添加如下行:

[share]

comment=this
is linux share directory

path=/home/zhf/zhf

public=yes

writable=yes

保存退出,重启samba服务器

/etc/init.d/samba
start

在windows下访问共享目录,点击运行,输入
\\192.168.0.11\share
这样就能以匿名用户访问共享目录share了。

这里介绍下设置的这几个参数。首先是security,security有share,user,domain三种设置

share:
共享的数据不需要密码

user:使用samba服务器本身的密码数据库,密码数据库与下面的passdbbackend有关

domain:使用外部服务器密码

comment:目录的说明

path:linux中的共享路径

writable:是否可以写入。这里就可以看出samba服务器和FTP服务器之间的差别。FTP服务器虽然可以直接下载,但是无法在服务器上直接修改文件。只有下载后在本地下载,然后继续上传。而samba则可以支持在服务器上在线修改文件

(二)
需要账户密码才可登陆的共享(security=user)

前面介绍了不经过密码直接登陆samba服务器的方法,设置十分简单。不过这样不需要密码直接访问的方式不太安全。我们来看下通过samba服务器提供的认证方式来进行用户权利的分配,也就是说,必须要输入正确的帐号和密码后,才能够登陆samba查看你自己的数据

既然需要帐号和密码,首先我们来添加新的帐号,然后设置帐号用户名,下面命将smb1用户加入到users组里面

root@zhf-linux:/var/log/samba#
useradd -G users smb1

通过passwd命令设置用户名密码

root@zhf-linux:/var/log/samba#
passwd smb1

Enter
new UNIX password:

Retype
new UNIX password:

passwd:
password updated successfully

创建共享的文件夹:

root@zhf-linux:/etc#
mkdir /home/project

root@zhf-linux:/etc#
chgrp users /home/project

root@zhf-linux:/home#
chmod 2770 /home/project

samba用户帐号必须要存在与/etc/passwd中,但是samba的密码与linux的密码可以不一样。前面我们新增了用户并且设置了密码。但是对于samba服务器来说,用户的密码文件都默认存在/var/lib/samba/private内,且用户密码使用TDB数据库格式。因此我们需要将新增的用户添加到TDB数据库中去

使用pdbedit命令进行添加

root@zhf-linux:/var/log/samba#
pdbedit -a -u smb1

new
password:

retype
new password:

Unix
username: smb1

NT
username:

Account
Flags: [U ]

User
SID: S-1-5-21-144210916-2780440130-1362333617-1000

Primary
Group SID: S-1-5-21-144210916-2780440130-1362333617-513

Full
Name:

Home
Directory: \\zhf-linux\smb1

HomeDir
Drive:

Logon
Script:

Profile
Path: \\zhf-linux\smb1\profile

Domain:
ZHF-LINUX

Account
desc:

Workstations:

Munged
dial:

Logon
time: 0

Logoff
time: never

Kickoff
time: never

Password
last set: Mon, 06 Nov 2017 09:50:48 CST

Password
can change: Mon, 06 Nov 2017 09:50:48 CST

Password
must change: never

Last
bad password : 0

Bad
password count : 0

Logon
hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

还可以查看下面有多少用户。修改密码可以采用smbpasswd
smb1的命令

root@zhf-linux:/var/log/samba#
pdbedit -L

smb1:1101:

添加好用户后,下一步就是需要编辑smb.conf文件

[global]

security=user

passdb
backend=tdbsam

[homes]

comment
= home directory

browseable
= no

writeable
= yes

create
mode = 0664

directory
mode = 0775

[project]

comment
= smbuser’s project

path
=/home/project

browseable
= yes

writable
= yes

write
list = @users

在window下输入\\192.168.0.11
可以看到project和share
两个共享目录,点击project会提示输入用户名和密码。输入后可能会遇到不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接
的提示。

事实上这个不是samba的限制。是Windows的限制。
始终要用public=yes的话,上面的方法都不能有效解决,因为:
在打开存在public=yes的samba服务器时,如果首先点击了有public=yes的共享资源的时候,widows会用默认的用户名去连接服务器,一般就是windows的登录名(可以在服务器端查看到的),这时候,再去点击没有public=yes的共享资源,由于使用了user级别,服务器就会要求验证,这时,之前的默认登录已经存在,就出现了这种故障了

个:

1
使用命令net
use * /del /y

2
注销windows然后重新进入

3
设置public=no

一起来学linux:SAMBA服务器搭建的更多相关文章

  1. Samba服务器搭建与配置

    Samba服务简介Samba的起源:对于windows的网上邻居来讲,共享文件的方式用的是SMB和CIFS协议以及NETBIOS协议Linux/Unix之间用的是NFS协议. ​ 但是Linux和Wi ...

  2. 【转】 Ubuntu samba服务器搭建及测试--不错

    原文网址:http://blog.csdn.net/longfeey/article/details/5937968 Ubuntu samba服务配置是很不错的文件应用很有学习价值, 这里我主要讲解U ...

  3. Linux samba服务器的搭建

    目录 1. 安装samba 2. 配置smb.conf 3. 创建samba登陆用户 4. 创建samba共享文件夹 5. 重启samba服务 6. 访问samba共享文件夹 7. 参考资料 1. 安 ...

  4. Linux之Samba服务器搭建

    一,samba的基本概念 SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务. ...

  5. Linux 下 Samba 服务器搭建

    初学,分享 环境和条件--- 虚拟机:VMware虚拟机 系统:Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:0 ...

  6. Samba服务器搭建配置

    本次环境: 服务端-centos6.8-192.168.2.200 客户端1-centos6.8-192.168.2.201 客户端2-Windows7-192.168.2.104 假设条件如下: 使 ...

  7. samba服务器搭建

    为实现windows与linux资源共享,搭建一个samba服务器:这个我也是探索了一段时间. 找到一篇写得比较清楚的博客: http://yangxuejun.blog.51cto.com/6239 ...

  8. Ubuntu 16.04下Samba服务器搭建和配置(配截图)

    一.相关介绍 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和 ...

  9. ubuntu 16.04 Samba服务器搭建

    搭建Samba服务器是为了实现Linux共享目录之后,在Windows可以直接访问该共享目录. 现在介绍如何在ubuntu 16.04系统中搭建Samba服务. 1.安装Samba服务 sudo ap ...

随机推荐

  1. https的实现原理

    加密算法 有两种基本的加解密算法类型: 1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES.AES等: 2)非对称加密:密钥成对出现(且根据公钥无法推知私钥, ...

  2. 块级元素和行内元素的区别 (block vs. inline)

    块级元素 (display: block) 独占一行,多个block元素会各自新起一行.默认情况下,block元素的宽度会填满父元素的宽度. 可以设置width, height属性.但是,即使设置了w ...

  3. Linux使用cd回到上一目录

    //返回上一级目录 cd .. //返回用户主目录 cd 或 cd ~ //返回根目录 cd /

  4. Vuex 通俗版教程

    作者 Yeaseon 已关注 2017.03.16 16:44* 字数 1245 阅读 243评论 2喜欢 4 本文基本上是官方教程的盗版,用通俗易懂的文字讲解Vuex,也对原文内容有删减. 如果你对 ...

  5. 安装 Groovy

    brew install groovy http://wiki.jikexueyuan.com/project/groovy-introduction/install-groovy.html

  6. sql语句中几个需要注意的点

    1.在写join语句的时候,一定要注意不要漏了on语句,例如: Select * from Student inner join Sc on Student.Sno=Sc.sno 2.having语句 ...

  7. API测试工具postman使用总结

    一.Postman介绍: Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件,主要用于模拟网络请求包,快速创建请求,回放.管理请求,验 ...

  8. 移植opencv2.4.9到itop4412开发板

    OpenCV是眼下开源项目中最著名的基于机器视觉方向的图像处理的开发包,眼下已经有被移植到嵌入式Linux环境上. 本文介绍了OpenCV交叉编译的基本步骤. 在opencv交叉编译之前要先进行依赖库 ...

  9. Vue 响应式数据说明

    值得注意的是只有当实例被创建时 data 中存在的属性才是响应式的.也就是说如果你添加一个新的属性,比如: vm.b = 'hi' 那么对 b 的改动将不会触发任何视图的更新. 这里唯一的例外是使用  ...

  10. UNP学习笔记(第十七章 ioctl操作)

    ioctl相当于一个杂物箱,它一直作为那些不适合归入其他精细定义类别的特性的系统接口. 本章笔记先放着,到时候有需要再看 ioctl函数 #include <unistd.h> int i ...