zoukankan      html  css  js  c++  java
  • samba详解

    Samba详解 

    原文  http://blog.csdn.net/seward_wang/article/details/12614263

    samba-client.i386
    samba-common.i386
    samba.i386
    samba-swat.i386

    1、安装软件包
    # yum install samba* -y

    配置目录 /etc/samba

    man smb.conf

    # vim /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   # <--- yes匿名可以访问,no拒绝匿名访问
            writable = no   # <--- yes 资源可以写,no只读
            printable = yes

    [share]
    comment = This is rhce testing
    path = /common
    browseable = yes # <---让资源可见
    hosts allow = .example.com  # <---只允许example.com域下的用户访问
    valid users = user1  # <---该资源只对user1用户有效,别的用户不能访问
    writable = yes  # <--资源可写
    2、创建目录并且修改selinux上下文

    # mkdir /common
    # chmod 775 /common

    # chcon -R -t samba_share_t /common
    # setsebool -P samba_export_all_ro on
    或者
    # setsebool -P samba_export_all_rw on

    3、创建samba独立的帐号
    注意:这些帐号必须是系统上本身就拥有的帐号

    [  useradd user1  ]

    # smbpasswd --help

    # smbpasswd  -a user1 <---添加user1到smb专用的帐号数据文件里
    4、设定iptables
    samber有两个进程:
    nmbd 137 , 138
    smbd 139 , 445

    iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -p tcp -m multiport --dports 137,138,139,445 -j ACCEPT
    iptables -A INPUT -p udp -m multiport --dports 137,138,139,445 -j ACCEPT
    5、测试
    # service smb restart

    # smbclient -L //192.168.0.249 -U user1   <--列出可以访问的资源
    # smbclient //192.168.0.249/share -U user1 <--访问名字叫share的资源
    如果共享的目录是公共的目录,也就是该目录也被别的服务共享,selinux上下文这样设定:
    # chcon -t public_content_t /common
    # chcon -t public_content_rw_t /common/pub

    总结:
    如果/common目录被nfs,vsftp,samba同时共享出去
    selinux设定:
    如果要求对该目录有写的权限:
    chcon -R -t public_content_rw_t /common
    如果是只读:
    chcon -R -t public_content_t /common

    文件系统权限:
    如果要求对该目录有写的权限:
    chmod 775 /common
    chown root:XXXX /common   《 --XXXX代表通过samba在该目录写文件的哟用户所在的组
    iptables设定(samba,nfs,ftp):

    modprobe ip_conntrack_ftp  <- --非常重要
    echo "modprobe ip_conntrack_ftp"  >> /erc/rc.d/rc.local iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -p tcp -m multiport --dports 20,21,137,138,139,445,875,32803,32769,892,662,2020,111,2049 -j ACCEPT

    iptables -P INPUT DROP

    练习:

    1、通过samba共享/common目录,要求不允许t113.org域的所有用户访问。只允许user2访问该资源

    [share]
    comment = "test"
    path = /common
    hosts deny = .t113.org
    valid users = user2

    useradd user2
    smbpasswd -a user2

    2、分别通过smbclient访问用户的家目录资源,测试是否支持上传等操作
    给我找到和samba家目录有关的selinux布尔值设定
    getsebool 命令 找到
    # getsebool  -a | grep samba
    samba_domain_controller --> off
    samba_enable_home_dirs --> off  《-----
    samba_export_all_ro --> off
    samba_export_all_rw --> on
    samba_share_nfs --> off
    use_samba_home_dirs --> off  《-----
    virt_use_samba --> off

    setsebool -P samba_enable_home_dirs=1
    setsebool -P use_samba_home_dirs=1

    3、通过samba共享/share目录,要求所有人都可以访问,而且匿名也可以访问,并且匿名也可以上传文件。

    [pub]
    comment = "Public source"
    path = /share
    guest ok = yes
    browseable = yes
    writable = yes

    # chcon -t public_content_rw_t /share/

    还需设定目录权限和selinux策略
    chmod 777 /share
    setsebool -P allow_smbd_anon_write=1

    测试
    # smbclient -L //192.168.0.249
    # smbclient  //192.168.0.249

  • 相关阅读:
    494. Target Sum 添加标点符号求和
    636. Exclusive Time of Functions 进程的执行时间
    714. Best Time to Buy and Sell Stock with Transaction Fee有交易费的买卖股票
    377. Combination Sum IV 返回符合目标和的组数
    325. Maximum Size Subarray Sum Equals k 和等于k的最长子数组
    275. H-Index II 递增排序后的论文引用量
    274. H-Index论文引用量
    RabbitMQ学习之HelloWorld(1)
    java之struts2的数据处理
    java之struts2的action的创建方式
  • 原文地址:https://www.cnblogs.com/mrcrazy/p/3768677.html
Copyright © 2011-2022 走看看