zoukankan      html  css  js  c++  java
  • Samba服务详解

    Samba文件服务器

    1. 本章结构

    2. 服务简介
      1. SMB协议

        Server Message Block,服务消息块

      2. CIFS协议

        Common Internet File System,通用互联网文件系统

      3. Samba项目

        http://www.samba.org

      4. 作用:

        分享档案与打印机服务;

        可以提供用户登入SAMBA主机时的身份认证;

        可以进行Windows网络上的主机名解析(NetBIOS name)

      5. SAMBA软件包

      6. samba服务器的主要程序

        smbd:提供对服务器中文件、打印资源的共享访问,打开的端口为139和445

        nmbd:提供基于NetBIOS主机名的解析,打开端口为137和138

        Samba的服务脚本:/etc/init.d/smb

        Samba的配置目录及文件

        /etc/samba/

        /etc/samba/smb.conf

        配置文件检查工具:testparm

      7. 常见配置

        smb.conf文件的配置内容:

        [global]:全局配置

        [homes]:用户目录共享设置

        [printers]:打印机共享设置

        [myshare]:自定义名称的共享目录设置,名字可以自定义,但是最好见名知意

        辅助配置内容:

        注释行:以#号开头的行

        配置样例行:以;号开头的行

        结合grep命令可以提取有效配置行

        grep –v "^#" smb.conf | grep –v "^;" | grep –v ^$

        常见全局配置项的含义:

        workgroup:所在工作组名称

        server string:服务器描述信息

        security:安全级别,可用值如下:

        shareuser、server、domain

    log file:日志文件位置,"%m"变量表示客户机地址

    max log size:日志文件的最大容量。单位为KB

    passwd backend:设置共享账户文件的类型

    常见共享目录配置项的含义:

    comment = some string:对共享目录的注释、说明信息

    path = pathname:共享目录在服务器中对应的实际路径

    load printers = yes/no:是否加载打印机

    browseable = yes/no:该目录在"网上邻居"中是否可见

    guest ok = yes/no:是否允许所有人访问,等效于"public"

    public = yes/no:是否允许所有人访问

    writable:是否可写,与read only的作用相反

    printable = yes/no:是否允许打印

    read only = yes:只读

    share modes = yes/no:是否开启共享模式

    valid users = username1,username2,@groupname:

    #指定合法用户或组,只有写在这里的才可以登陆

    write list = username1,username2,@groupname:

    #只有写在这里用户或组才具有写权限,组名前要加@符号

    1. 其他设置

      端口映射与地址访问限制:

      hosts allow = 192.168.1. EXPECT 192.168.1.15

      #设置允许访问的主机IP,可以使用EXPECT排除某个IP

      username map = /etc/samba/smbusers

      格式为:原名 = 别名

      #别名映射,别名文件为smbusers

      linux自动挂载

      #vim /etc/fstab

      //192.168.10.2/share /mnt cifs defaults,username=zhangsan,password=123456

      注意:samba共享目录,除了服务自身设置外,还要注意设置目录权限

    2. 客户端访问
      1. Linux客户端

        # yum -y install samba-client #安装SAMBA客户端

        #useradd admin #添加本地用户

        #加入samba服务的用户家目录其实就是系统用户的家目录

        #smbpasswd -a admin #为用户添加密码

        #smbclient –U username //主机IP/sharedir

        #以某用户登陆SAMBA

        #smbclient [-U username] -L IP地址

        #列出某samba服务器共享的目录信息

        smb: > get 文件名 #下载文件

        smb: > put 文件名 #上传文件

        smb: > ls #列出共享的文件

      2. Windows客户端

        \IP地址sharedir (unc路径:Universal Naming Convention 通用命名规则,也称通用命名规范、通用命名约定)

        在CMD下可以使用:net use * /del #删除本机所有映射和IPC#$(空连接)连接

        #如果想每次都不用做上述操作,那么可以将其映射到本机,即在windows里面,点击"计算机—映射网络驱动器" 填写好相关信息

    1. 试验一

    创建3个文档目录:

    /var/share/public,存放公共数据

    /var/share/training,存放技术培训资料

    /var/share/devel,存放项目开发资料

    1、将/var/share/public目录共享为public

    所有员工可匿名访问,但是只能读取文件,不能写入

    2、将/var/share/training目录共享为peixun

    只允许管理员admin及技术部的员工只读访问

    3、将/var/share/devel/目录共享为kaifa

    技术部的员工都可以读取该目录中的文件

    但是只有管理员admin及xdl项目组的员工有写入权限

    首先记得关闭防火墙和SELINUX

    #yum –y install samba

    #vim /etc/samba/smb.conf

    [global]

    workgroup = WORKGROUP

    server string = Samba Server Version %

    log file = /var/log/samba/log.%m

    max log size = 50

    security = user

    passdb backend = tdbsam

    load printers = yes

    cups options = raw

    [homes]

    comment = Home Directories

    browseable = no

    writable = yes

    ; valid users = %S

    ; valid users = MYDOMAIN\%S

    [printers]

    comment = All Printers

    path = /var/spool/samba

    browseable = no

    guest ok = no

    writable = no

    printable = yes

    [public]

    comment = public

    path = /var/share/public

    browseable = yes

    guest ok = yes

    read only = yes

    [peixun]

    comment = peixun

    path = /var/share/training

    valid user = admin,@tech

    read only = yes

    [kaifa]

    comment = kaifa

    path = /var/share/devel

    writable = yes

    write list = admin,@xdl

    #service smb start

    #useradd admin #添加本地用户

    #smbpasswd -a admin #为用户添加密码

    #chmod 775 /var/share/public #可根据系统用户、组、其他人进行设置

    #chmod 770 /var/share/training

    #chmod 770 /var/share/devel

    添加用户组进行测试:

    #groupadd xdl

    #groupadd tech

    #useradd –G xdl user1

    #useradd –G xdl user2

    #useradd –G xdl user3

    #useradd –G tech tech1

    #useradd –G tech tech2

    #setfacl -m u:admin:rx /var/share/training

    #setfacl -m g:tech:rx /var/share/training

    #setfacl -m g:tech:rx /var/share/devel

    #setfacl -m g:xdl:rwx /var/share/devel

    #setfacl -m u:admin:rwx /var/share/devel

    #smbpasswd -a user1

    #smbpasswd –a user2

    #smbpasswd –a user3

    #smbpasswd –a tech1

    #smbpasswd –a tech2

    Linux测试机:

    #yum –y install samba-client

    #smbclient -U admin //192.168.131.129/kaifa #测试结果可读写

    #mkdir /samba

    1. 永久挂载

    # vim /etc/fstab

    //192.168.131.129/kaifa /samba cifs defaults,username=admin,password=123 0 0

    #mount –a

    #mount

    1. 临时挂载

    #mount -t cifs -o defaults,username=admin,password=123 //192.168.131.129/kaifa /samba/

  • 相关阅读:
    pam_smb
    什么是PAM认证
    如何使windows7的默认共享可以被访问[转载]
    remote mounting from windows to linux
    Kernel boot options
    Linux kernel启动选项(参数)
    tftp client命令示例
    在不同的Linux发行版上安装TFTP Server
    SpringBoot2 整合Nacos组件,环境搭建和入门案例详解
    我是如何做到springboot自动配置原理解析
  • 原文地址:https://www.cnblogs.com/fengyutech/p/4918252.html
Copyright © 2011-2022 走看看