zoukankan      html  css  js  c++  java
  • Samba服务安装配置

    samba:用于实现Linux和windows之间文件共享

    功能:实现匿名用户和本地用户的文件共享

    工作原理:

    smb进程:控制发布目录与权限,负责文件传输TCP 139 445

    nmb进程:用于名称解析udp 137 138

    Samba安装:

    步骤:(安装|查询|软件列表)

    #yum install samba -y

    #rpm -qa|grep samba

    samba-winbind-3.6.23-36.el6_8.x86_64

    samba-client-3.6.23-36.el6_8.x86_64     //客户端

    samba-3.6.23-36.el6_8.x86_64            //服务端

    samba4-libs-4.0.0-66.el6_6.rc4.x86_64   //库文件

    samba-common-3.6.23-36.el6_8.x86_64     //工具包

    samba-winbind-clients-3.6.23-36.el6_8.x86_64

    [root@Server ~]# rpm -ql samba|grep etc

    /etc/logrotate.d/samba  //日志轮转

    /etc/pam.d/samba        //认证模块

    /etc/rc.d/init.d/nmb    //启动脚本

    /etc/rc.d/init.d/smb    //启动脚本

    /etc/samba/smbusers     //用户别名

    二进制命令

    /usr/sbin/nmbd

    /usr/sbin/smbd

    /etc/samba/smb.conf   //主配置文件

    /usr/bin/smbpasswd      //配置smb用户密码命令

    /usr/bin/testparm       //检查语法命令

    /usr/bin/smbxlient   //客户端命令

    了解主配置文件

    #cat /etc/samba/smb.conf|grep -v ^#|grep -v ^';'|grep [a-z]

    [global]    //全局选项    

    workgroup = MYGROUP //工作组    

    server string = Samba Server Version %v //smb服务的版本描述    

    # logs split per machine    

    log file = /var/log/samba/log.%m    //日志文件及格式    

    # max 50KB per log file, then rotate    

    max log size = 50       //日志的最大大小   

      security = user     //认证模式:user(用户名密码),share(匿名用户),server(外部服务器)   

      passdb backend = tdbsam    

    # the login script name depends on the machine name    

    # the login script name depends on the unix user used    

    # disables profiles support by specifing an empty path   

      load printers = yes //加载打印机    

    cups options = raw  //打印机选项    

    #obtain list of printers automatically on SystemV

    [homes]     //局部选项,默认共享本地用户的家目录   

      comment = Home Directories  //描述    

    browseable = no         //隐藏标签    

    writable = yes  //可写

    [printers]      //共享名称    

    comment = All Printers    

    path = /var/spool/samba   

      browseable = no   

      guest ok = no  ------> public = no    

    writable = no  ------> read only = yes    

    printable = yes //打印选项

    不修改配置文件启动服务

    [root@Server ~]# /etc/init.d/nmb start

    [root@Server ~]# /etc/init.d/smb start

    默认情况:

    security = user

    客户端测试:

    配置oldboy的数据库密码

    [root@Server ~]# smbpasswd -a oldboy   

    -a  打开

    -d  关闭

    linux客户端连接:

    [root@client01 ~]# smbclient -L 192.168.8.132 -U oldboy

    [root@client01 ~]# smbclient //192.168.8.132/oldboy -U oldboy

    Enter oldboy's password:

    Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]

    smb: >

    windows客户端连接

    \192.168.8.132 ---->输入用户名密码即可访问

    总结:默认情况,本地用户可以访问自己的家目录, 但是需要将用户加入到smb数据库中,匿名用户没有可访问的目录.

    如果security = share 本地用户无法访问;

    security = user 本地用户可以访问, 匿名用户能否访问取决于是否有共享目录允许匿名用户访问。

    匿名用户共享:

    server: /samba/share

    mkdir /samba/share -p

    [root@Server /]# vim /etc/samba/smb.conf  

    security = share

    [anon_share]

    comment = anon share

    path = /samba/share

    public = yes writable = yes

    browseable = yes

    service smb restart     //重启服务

    测试:

    #smbclient 192.168.8.132/anon_share

    security = share 匿名用户可以访问本地用户不可以

    基于本地用户和密码访问

    [root@Server /]# vim /etc/samba/smb.conf

    security = user

    [local_share]

    comment = local share

    path = /samba/local

    public = no

    writable = yes

    browseable = yes

    service smb restart     //重启服务

    测试:

    #smbclient 192.168.8.132/local_share

    ======================================================================

    samba实践:

    基于用户名密码的综合访问

    需求: 公司:uplooking

    1、财务部 /samba/upl_cw cw01用户有可读可写权限,财务部门员工可读,boss01对其有管理权限

    2、市场部 /samba/upl_sc 该部门的员工可读可写,公司所有员工可以查询相关资料,boss02对其有管理权限

    3、人事部 /samba/upl_rs rs01总监可读写,人事部门员工可以对财务部门查询,vip用户可查询人事部门

    4、休息区 /samba/upl_pub 所有人都可以自己管理自己的文件

    步骤:

    1、创建用户组    

    groupadd uplooking

        groupadd cw    

    groupadd sc    

    groupadd rs

    每个部门2个员工:    

    useradd -g cw -G uplooking cw01    

    useradd -g cw -G uplooking cw02   

      useradd -g sc -G uplooking sc01    

    useradd -g sc -G uplooking sc02    

    useradd -g rs -G uplooking rs01    

    useradd -g rs -G uplooking rs02

        useradd -g uplooking -G cw boss01    

    useradd -g uplooking -G sc boss02    

    useradd vip

    2、创建目录及修改相应的权限   

      mkdir /samba/upl_{cw,sc,rs,pub} -p    

    chmod 770 /samba -R    

    chown root.uplooking /samba    

    chown root.cw upl_cw    

    chown root.sc upl_sc    

    chown root.rs upl_rs    

    chmod 1777 upl_pub

    3、搭建Samba服务,发布共享目录

    vim /etc/samba/smb.conf

    [财务共享目录]    

    commet = 财务   

      path = /samba/upl_cw    

    valid users = @cw,boss01,@rs   

      read list = @cw,boss01,@rs    

    write list = cw01,boss01

    [市场共享目录]  

       commet = 市场    

    path = /samba/upl_sc  

       valid users = @uplooking   

      read list = @uplooking,boss02,@sc    

    write list = boss02,@sc

    [HR共享目录]    

    commet = HR   

      path = /samba/upl_rs    

    valid users = @rs,vip   

      read list = @rs,vip,boss02  

       write list = rs01

    [休息区共享目录]    

    commet = 休息    

    path = /samba/upl_pub   

      valid users = @uplooking   

      read list = @uplooking   

      write list = @uplooking

    4、检查语法

    /usr/bin/testparm

    5、配置smb用户名密码

    smbpasswd -a cw01

    smbpasswd -a cw02

    smbpasswd -a rs01

    smbpasswd -a rs02

    smbpasswd -a sc01

    smbpasswd -a sc02

    smbpasswd -a boss01

    smbpasswd -a boss02

    smbpasswd -a vip

    /usr/bin/pdbedit -L 列出smb数据库里的用户

    5、重启服务 service smb restart

    6、测试验证 Linux windows cmd ---->net use * /del /y          //清空缓存

    7、相应的acl控制策略

    #setfacl -m u:rs01:rx upl_cw

    #setfacl -m u:vip:rx upl_rs #setfacl -m u:vip:rx .

    用户别名:

    #vim /etc/samba/smusers

    vip = zhangsan

    [global]

    username

    map = /etc/samba/smbusers

    -------------------------------------------------------------------

    以上可能需要acl控制权限设置

    setfacl 设置文档访问控制列表

    -b  删除所有附加的ACL条目

    -k 删除默认的ACL

    -m 添加ACL条目

    -x 删除制定的ACL条目

    -R 递归处理所有的子文件与子目录

    使用getfacl查看文档的ACL权限,使用setfacl来设置文档的ACL权限。

  • 相关阅读:
    python调用ggsci.exe程序
    confluence安装
    nginx优化
    ELKstack搭建
    zabbix 安装
    python requests
    小程序消息推送
    shell
    rar 解压
    ubuntu 安装部分设置U盘启动系统安装盘操作
  • 原文地址:https://www.cnblogs.com/erick2/p/5877521.html
Copyright © 2011-2022 走看看