zoukankan      html  css  js  c++  java
  • Linux下Samba的配置

    一、Samba 介绍
    1、SMB协议
    SMB (Server Message Block,服务信息块) 协议,是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其他windows和linux 机器提供文件系统、打印服务。SMB的工作原理是让NetBIOS和SMB运行在TCP/IP之上,且使用NetBIOS的nameserver让 linux机器可以在windows 网络邻居里被浏览。

    2、Samba
    Samba是用来实现SMB的一种软件,由澳大利亚的Andew Tridgell开发,是一种在Linux 环境里运行的自由软件。它可以完成如下功能:
    文件服务和打印服务,实现Windows和Linux的资源共享。
    登录服务器,可以作为局域网的服务器。
    作为主域控制器。
    WINS服务器。
    支持SSL。
    支持SWAT。

    二、 Samba服务
    1、 核心进程
    Samba 有两个守护进程:smbd 和nmbd,它们是Samba的核心进程。nmbd进程使其他计算机浏览Linux服务器,Smbd进程在SMB服务请求到达时对它们进行处理,并且为使用或共享的资源进行协调。

    2、 启动服务
    Samba 有两种启动方式:Daemon形式和Inetd形式。
    (1)Daemon形式 建立启动脚本:rc.samba
    smbd -D -d1
    nmbd -D -d1

    -D 表示以Daemon形式执行;-d1 表示除错记录级别
    执行脚本文件rc.samba

    (2)Inetd形式
    设置文件:/etc/services
    netbios -ssn 139/ tcp
    netbios -ns 137/ udp

    设置文件:/etc/inetd.conf
    netbios -ssn stream tcp nowait root /usr/sbin/smbd smbd
    netbios -ns dgram udp wait root /usr/sbin/nmbd nmbd

    重启动Inetd daemon
    # kill -HUP 1

    3、 客户工具 smbclient
    Smbclient命令用来存取远程Samba服务器上的资源。其命令形式与ftp相似。
    命令语法是:#smbclient [password] [option]
    (1) 解释:servicename是要连接的资源名称,资源名称的形式如下:
    //server/service server 是远程服务器的NetBIOS名字,对于windows服务器而言,就是出现在网上邻居中的名字。
    Service是各server所提供的资源的名字。
    pssword 是存取该资源所需的口令
    option 各种命令选项,其中 -L 用于列出远程服务器提供的所有资源
    -I 指定远程服务器的IP地址。此时,servicesname 中的NetBIOS名部分将被忽略。

    (2)多种smbclient命令:
    执行smbclient命令成功后,进入smbclient环境,出现提示符: smb:/>
    这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。

    4、 Samba系统装载与卸载
    (1) 装载其他主机的资源
    我们可以利用Samba提供的smbmount命令,装载其他主机的共享资源。
    Smbmount的命令语法:# smbmount
    其中 servicename 是资源名,mount-point是安装点。

    例如: # smbmount "//server/tmp" -c ' mount /mnt'
    表示:把名字为“server”的计算机上的共享资源“tmp”的内容装载到本地的 /mnt
    目录下。

    (2) 卸载资源
    卸载一个已经装载的SMB文件系统,使用smbunmount命令,同时指定要卸载的装载点。 例如: # smbunmount / mnt

    三、Samba配置
    Samba组件的配置文件是 /etc/smb.conf ,该文件几乎包含了Samba系统程序运行时所需的所有配置信息。

    1、 配置选项
    配置文件中有比较重要的几个节:[gloabal]、[homes]、[printers],下面分别给与说明。
    (1)[gloabal]节 在全局参数中,参数的设置直接影响samba系统。
    NetBIOS name:设置主机名称
    Workgroup:用来指定主机所在网络上所属的NT域名或者工作组名称。格式是
    Workgroup= Nt Domain-Name or workgroup-name
    Server string:用来设置本机描述,缺省是 Samba Server
    Host Allow:它允许设置哪些领域的机器可以访问它的Samba服务器
    Load printers:允许自动加载打印机列表,而不需要单独设置每一台打印机。
    Interface:配置Samba使用多个网络界面。
    Domain controller: 仅当网络中有一台在安装时设置为主域控制器时使用此选项。
    Security: 设置安全参数,定义安全模式。Samba 的安全模式有四种
    Share、 user、 server 、domain
    encrypt passwords 、smb passwd file:用于适用加密口令。

    下面是一段参数配置例子:
    [global]
    smb passwd file = /etc/smbpasswd
    remote announce = 172.18.158.234 172.18.153.55 172.18.153.255
    dns proxy = no
    security = user
    encrypt passwords = yes
    server string = Ftp Server
    workgroup = turing
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    log file = /var/log/samba/log.%m
    load printers = yes
    guest account = dscan
    remote browse sync = 172.18.158.234 172.18.153.55 172.18.153.255
    printcap name = /etc/printcap
    max log size = 50
    hosts allow = 172.18.158. 172.18.153. 127.
    ... ...

    (2)[homes]节 所有使用者的home目录
    当任何一个客户访问Samba服务器时,在网络资源中都能出现自己的home目录共享。其配置如下:
    [homes]
    comment = Hnnw Directories
    browseable = no
    writable = yes
    (3)用户共享目录
    用来指定某一特定用户组或者用户拥有访问权限的目录配置,下列参数配置仅有hnnw组的用户有权访问目录/home/samba。
    [public]
    comment = Public Hnnw
    path = /home/samba
    public = yes
    writable = yes
    printable = no
    write list = @hnnw

    2、 用户映射
    全局参数“username map”用来控制用户映射,它允许管理员指定一个映射文件,该文件包含了在客户机和服务器之间进行用户映射的信息。
    如:username map= /etc/smbuser
    用户映射经常在windows 和linux 主机间进行。 两个系统拥有不同的用户账号,用户映射的目的是将不同的用户映射成为一个用户,便于共享文件。
    下面是一个映射文件的例子:
    # Map Windows admin to root
    root=admin administrator
    ;Map the member of developer to studio
    studio = @developer

    等号左边是单独的Linux账号,等号右边是要映射的账号列表。
    服务器逐行分析映射文件,如果提供的账号和某行有右侧列表中的账号匹配,就把它
    替换为等号左边的账号。

    3、 使用加密口令
    新版本的windows 95以及windows98、winnt(sp3以上版本),在网络传输中仅传递加密口令作为用户认证的信息。这类客户机和不支持加密口令并且以user 安全级运行的Samba服务器通讯时,会出现故障。为了正常的通讯,samba服务器使用加密口令。下面讨论如何在samba中使用加密口令。
    (1) 口令文件 /etc/smbpasswd
    为了使用加密口令,samba 需要一份口令文件(/etc/smbpasswd),并且该文件应该和Linux的口令文件(/etc/passwd)保持同步。下面是生成文件命令:

    # cat /etc/password | mksmbpasswd > /etc/smbpasswd

    smbpasswd 是需要的口令文件,其权限是0600,所有者是root
    smbpasswd和passwd文件的记录对应,密码部分不同。密码有两部分组成,每部分
    是32个"X",前部分用于和Lanman通讯,后部分和Windows NT通讯。
    Root用户可以使用smbpasswd命令为每个用户设定samba口令。

    (2) 修改配置文件 /etc/smb.conf
    要使Samba使用加密口令,需要在配置文件smb.conf中加入如下参数。
    Encrypt passwords=yes
    Smb passwd file= /etc/smbpasswd
    第一行通知samba使用加密口令,第二行给出口令文件的位置。

    (3) 重启动samba 服务。
    修改完配置文件后,需要重新启动samba服务,可用如下命令:
    # /usr/sbin/samba restart

    4、windows系统中的明码口令使用
    Samba系统中使用明码口令作为连接SMB的默认设置。当SMB服务器对协商协议做出响应时,响应信息包含了一位,以说明服务器是否支持询问或者响应加 密。随着win95的网络重定向更新程序的发布,Microsoft修改了默认值,这样,windows客户就不会向不支持加密的服务器发送明码口令了。
    在这种情况下,有两种解决办法:
    (1)设置Samba服务器使用加密口令
    (2)让windows客户使用明码口令
    这里选用第2种解决办法,通过修改注册表来实现。下面对win95/win98、winnt用户分别给与说明。
    (1)win98/win95系统用户
    在注册表中加入下列注册字,并重新启动机器:
    [HKLM/System/CurrentCntrolSet/Services/VxD/VNETSUP]
    “EnablePlainTextPAssword”= dword:00000001

    (2)Winnt系统用户
    修改注册表,加入下列注册表项,并重新启动机器:
    [HKLM/System/CurrentCntrolSet/Services/Rdr/Parameters]
    “EnablePlainTextPAssword”= dword:00000001

    四、Samba应用
    1、 windows资源共享与使用
    (1)windows资源共享
    a. 使用TCP/IP协议作为网络默认通讯协议
    b. 修改网络配置,设置文件和打印机共享。
    c. 设置好计算机名和所属工作组
    d.共享系统资源

    (2)在windows系统中使用Linux共享资源
    a. 登录进入windows网络
    b. 通过网上邻居查看、使用共享资源。
    c. 命令行下工具使用共享资源
    使用命令行下的net.txt工具来查看、使用共享资源:
    net use 命令的语法: c:>net use X://servername/sharename
    在这里,X:是共享的驱动器盘符,//servername/sharename是到共享的UNC的网络路径。
    例如: c:/>net use h://hey/myfile
    表示:将hey机器上的myfile共享资源映射为本地的h盘

    2、Linux资源共享与使用
    (1)将Linux 的资源共享
    通过编辑Samba配置文件,添加需要共享的Linux资源。同时可以设定访问此资源的用户群及其访问权限。下面是一段例子,将本机的 /public/data 目录共享,所有人都有读写权限。
    [data]
    comment = Public Data
    path = /public/data
    public = yes
    writable = yes
    printable = no

    (2)在Linux中使用共享资源
    可以使用smbclient命令,访问所有的Samba资源。具体使用方法见前述。

    五、Samba应用程序
    smbclient :访问所有共享资源
    smbstatus: 列出当前所有的samba连接状态
    smbpasswd:修改samba用户口令、增加samba用户。
    Nmblookup:用于查询主机的NetBIOS名,并将其映射为IP地址
    Testparam: 用于检查配置文件中的参数设置是否正确

    原文:http://blog.csdn.net/biach/article/details/1768154

  • 相关阅读:
    Running ASP.NET Applications in Debian and Ubuntu using XSP and Mono
    .net extjs 封装
    ext direct spring
    install ubuntu tweak on ubuntu lts 10.04,this software is created by zhouding
    redis cookbook
    aptana eclipse plugin install on sts
    ubuntu open folderpath on terminal
    ubuntu install pae for the 32bit system 4g limited issue
    EXT Designer 正式版延长使用脚本
    用 Vagrant 快速建立開發環境
  • 原文地址:https://www.cnblogs.com/jinc/p/3170237.html
Copyright © 2011-2022 走看看