以前我们在windows上共享文件的话,只需右击要共享的文件夹然后选择共享相关的选项设置即可。然而如何实现windows和linux的文件共享呢?这就涉及到了samba服务了,这个软件配置起来也不难,使用也非常简单。

【samba配置文件smb.conf】

一般你装系统的时候会默认安装samba,如果没有安装,只需要运行这个命令安装(CentOS):

“yum install -y samba samba-client”

Samba的配置文件为/etc/samba/smb.conf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部分:

[global]

    workgroup = MYGROUP

    server string = Samba Server Version %v

    security = user

    passdb backend = tdbsam

    load printers = yes

    cups options = raw

[homes]

    comment = Home Directories

    browseable = no

    writable = yes

[printers]

    comment = All Printers

    path = /var/spool/samba

    browseable = no

    guest ok = no

    writable = no

    printable = yes

主要有以上三个部分:[global], [homes], [printers]。

[global]定义全局的配置,”workgroup”用来定义工作组,相信如果你安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的”MYGROUP”改成”WORKGROUP”(windows默认的工作组名字)。

security = user #这里指定samba的安全等级。关于安全等级有四种:

share:用户不需要账户及密码即可登录samba服务器

user:由提供服务的samba服务器负责检查账户及密码(默认)

server:检查账户及密码的工作由另一台windows或samba服务器负责

domain:指定windows域控制服务器来验证用户的账户及密码。

passdb backend = tdbsam # passdb backend (用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.

smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。

tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:

pdbedit –a username:新建Samba账户。

pdbedit –x username:删除Samba账户。

pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。

pdbedit –Lv:列出Samba用户列表详细信息。

pdbedit –c “[D]”–u username:暂停该Samba用户账号。

pdbedit –c “[]”–u username:恢复该Samba用户账号。

ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”

load printers 和 cups options 两个参数用来设置打印机相关。

除了这些参数外,还有几个参数需要你了解:

netbios name = MYSERVER # 设置出现在“网上邻居”中的主机名

hosts allow = 127. 192.168.12. 192.168.13. # 用来设置允许的主机,如果在前面加”;”则表示允许所有主机

log file = /var/log/samba/%m.log #定义samba的日志,这里的%m是上面的netbios name

max log size = 50 # 指定日志的最大容量,单位是K

[homes]该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。

[printers]该部分内容设置打印机共享。

【samba实践】

注意:在试验之前,请先检测selinux是否关闭,否则可能会试验不成功。关于如何关闭selinux请查看第十五章 linux系统日常管理的“linux的防火墙”部分

  1. 共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读。

打开samba的配置文件/etc/samba/smb.conf

[global]部分

把”MY GROUP”改成”WORKGROUP”

把”security = user” 修改为“security = share”

然后在文件的最末尾处加入以下内容:

[share]

    comment = share all

    path = /tmp/samba

    browseable = yes

    public = yes

    writable = no

mkdir /tmp/samba

chmod 777 /tmp/samba

启动samba服务

/etc/init.d/smb start

测试:

首先测试你配置的smb.conf是否正确,用下面的命令

testparm

如果没有错误,则在你的windows机器上的浏览器中输入file://IP/share 看是否能访问

  1. 共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写

打开samba的配置文件/etc/samba/smb.conf

[global] 部分内容如下:

[global]

    workgroup = WORKGROUP

    server string = Samba Server Version %v

    security = user

    passdb backend = tdbsam

    load printers = yes

    cups options = raw

然后加入以下内容:

[myshare]

    comment = share for users

    path = /samba

    browseable = yes

    writable = yes

    public = no

保存配置文件,创建目录:

mkdir /samba

chmod 777 /samba

然后添加用户。因为在[globa]中” passdb backend = tdbsam”,所以要使用” pdbedit” 来增加用户,注意添加的用户必须在系统中存在。

useradd user1 user2

pdbedit -a user1 # 添加user1账号,并定义其密码

pdbedit -a user2

pdbedit -L # 列出所有的账号

测试:

打开IE浏览器输入file://IP/myshare/ 然后输入用户名和密码

  1. 使用linux访问samba服务器

Samba服务在linux下同样可以访问。前提是你的linux安装了samba-client软件包。安装完后就可以使用smbclient命令了。

smbclient //IP/共享名 -U 用户名

如:[root@localhost]# smbclient //10.0.4.67/myshare/ -U user1

Password:

Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.33-3.29.el5_6.2]

smb: >

出现如上所示的界面。可以打一个”?”列出所有可以使用的命令。常用的有cd, ls, rm, pwd, tar, mkdir, chown, get, put等等,使用help + 命令可以打印该命令如何使用,其中get是下载,put是上传。

另外的方式就是通过mount挂载了:

如:

mount -t cifs //10.0.4.67/myshare /mnt -o username=user1,password=123456

格式就是这样,要指定-t cifs //IP/共享名本地挂载点 -o后面跟username 和 password

挂载完后就可以像使用本地的目录一样使用共享的目录了。

smbpasswd 和 pdbedit 的区别的更多相关文章

  1. smbpasswd和pdbedit

    samba用户管理: smbpasswd :smbpasswd命令属于samba套件,能够实现添加或删除samba用户和为用户修改密码. smbpasswd [options] USERNAME -a ...

  2. Samba服务安装及配置

    服务器环境:CentOS6.9 Linux 2.6.32-696.10.1.el6.x86_64 安装Samba服务 过程中会安装3个服务smb(文件.打印共享服务,使用139.445端口).nmb( ...

  3. Linux网络文件共享服务之smaba

    一.SAMBA服务简介 samba是1991年由Andrew Tridgel开发实现,主要用于Windows和unix文件共享.samba实现了共享文件和打印,实现在线编辑,登录SAMBA用户的身份认 ...

  4. Samba passwd smbpasswd and tdbsam

    ome commands to convert samba backend password-databases. If you use "passdb backend = smbpassw ...

  5. Migrating authentication of Samba from smbpasswd to tdb

    Was addicted various After you upgrade the OS of old Samba server. Put it also was using a set of 2. ...

  6. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

  7. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. 探究@property申明对象属性时copy与strong的区别

    一.问题来源 一直没有搞清楚NSString.NSArray.NSDictionary--属性描述关键字copy和strong的区别,看别人的项目中属性定义有的用copy,有的用strong.自己在开 ...

随机推荐

  1. Azure REST API (4) 在Python环境下,使用Azure REST API

    <Windows Azure Platform 系列文章目录> 之前遇到的项目中,客户需要在Python环境下,监控Azure VM的CPU利用率,在这里简单记录一下. 笔者的环境是Win ...

  2. 手机与PC的影音相互播放(DLNA/UPNP)

    DLNA:全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟), 旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无 ...

  3. 恢复word中审阅选项卡

    碰到在Word中,使用自定义功能区添加审阅选项卡,仍然不显示审阅选项卡 二个办法: 1.检查COM加载项,找出并从此禁用,如:iWebOffice2009.ocx 2.创建自定选项卡“审阅(自定义)” ...

  4. line-height的理解

    font-size:0清除display:inline-block元素换行符间隙,比如两个img标签之间有换行符 行内元素的高度是由其行高决定的. Div或者其他元素内的图片,底部会有间隙,原因是图片 ...

  5. centos 磁盘清理 /dev/vda1系统盘满了

    df   -h   检查一台服务器磁盘使用空间,发现磁盘已经使用了100% 思路是: 1.cd /usr   当然这里不一定是/usr目录,最好是cd到 根目录再执行下一步 2.du -sh * 看哪 ...

  6. 火狐对SVG的兼容性

    使用d3在SVG中画流程图,需要获取流程图的宽,高,来给流程图居中布局.在Chrome中 正常显示,可是在火狐中svg流程图在容器内偏移,查看很不方便.在网上百度了,找不到火狐对d3的兼容性,所以就自 ...

  7. Web jsp开发学习——前端后台传参方法

    一.前端传后台: 1.1表单数据的传递   前端的表单里定义名字name   后台通过名字获取输入的值         1.2页面点击了哪个按钮传递 登录注销的另一种方式   点击登录的地方设置参数 ...

  8. lightgbm的sklearn接口和原生接口参数详细说明及调参指点

    class lightgbm.LGBMClassifier(boosting_type='gbdt', num_leaves=31, max_depth=-1, learning_rate=0.1, ...

  9. 这些git命令判断提交到哪个分支哪个项目上

    git branch -r fuweikun@pengfei:~/e1_cp/AMSS$ git branch* 8939-E1-2104026-dev git config -l fuweikun@ ...

  10. Qt Opengl

    目前在Qt5中做Opengl的学习时候,发现gluPerspective函数没有定义. 1: gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, ...