zoukankan      html  css  js  c++  java
  • samba

    SAMBA能够让Linux上共享的文件在Windows上可以被访问,常用的端口是 137,138,139,445
    
    总共有3种方式:
    1. 共享出来,谁都可以访问
    2. 只有有用户和密码的用户才可以访问
    3. 能够在Linux上访问到samba服务器的文件夹
    
    =============================================
    samba配置文件 /etc/samba/smb.conf
    
    /* 定义全局的配置 */
    [global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = user
    /* samba的安全等级有4种: 
        share : 不需要账户及密码就可以登录
        user : samba服务器检查账户或密码
        server: 检查账户密码由另一台Windows或samba服务器负责
        domain : 指定Windows域来控制服务器检查账户或密码
    */
        passdb backend = tdbsam
    /* (用户后台)passdb backend
        有三种用户后台:smbpasswd, tdbsam、 ldapsam
        smbpasswd: 使用smb工具smbpasswd给(系统用户或虚拟用户)设置一个samba密码,这样可以通过此密码访问samba资源。
    这文件存在/etc/samba中,有时需要手动创建。
    
        tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb。
       先创建系统用户,useradd user1
    然后samba才可创建对应的samba用户,pdbedit -a user1
    pdbedit用法
    
       ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”
    */
        load printers = yes
        cups options = raw
    /*
    除了这些参数外,还有几个参数需要你了解:
    
    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]
        comment = Home Directories
        browseable = no 
        writable = yes
    
    /* 设置打印机共享*/
    [printers]
        comment = All Printers
        path = /var/spool/samba
        browsable = no
        guest ok = no
        writable = no
        printable = yes
    !!!!当在Windows访问samba服务器很慢时,解决方法:
    
    /*
    [root@frankie ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@frankie tmp]# vi /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=frankie
    
    将hosts里的127.0.0.1 里的servername换成 network文件里的hostname
    */

    一、安装samba并配置

    [root@localhost ~]# yum install -y samba samba-client
    
    1. 共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读
    [root@localhost ~]# vim /etc/samba/smb.conf
    ...
    ...
    workgroup = MYGROUP  #改为 WORKGROUP
    ...
    ...
    security = user  #改为 share
    ...
    #在文件最末尾加入
    [share]
            comment = share all
            path = /tmp/samba
            browseable = yes
            public = yes
            writable = no
    [root@localhost ~]# mkdir /tmp/samba
    [root@localhost ~]# chmod 777 /tmp/samba
    [root@localhost ~]# touch /tmp/samba/sharefiles
    [root@localhost ~]# echo "111" > /tmp/samba/sharefiles
    [root@localhost ~]# testparm     //测试你配置的smb.conf是否正确
    //警告:WARNING: The security=share option is deprecated, 不过影响不大,无需管它。
    [root@localhost ~]# /etc/init.d/smb start 
    
    /*在Windows浏览器 或文件夹地址栏输入*/
    file://IP/share
    
    --> 看是否能访问到sharefiles
    
    ****无法访问*****(没有权限)
    防火墙问题 iptables -F / service iptables stop / vi /etc/selinux/config --> selinux=disabled-->reboot/
    ***********************
    2. 共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写 [root@localhost ~]# vim /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 [root@localhost ~]# mkdir /samba [root@localhost ~]# chmod 777 /samba //添加可访问samba共享文件夹的用户,用户必须在系统中存在 [root@localhost ~]# useradd user1 [root@localhost ~]# useradd user2

    //为用户添加samba账号 [root@localhost ~]# pdbedit -a user1
    new password: //给账号配置密码 [root@localhost
    ~]# pdbedit -a user2 [root@localhost ~]# pdbedit -L //列出samba所有账号 [root@localhost ~]# service smb restart 测试: 打开IE浏览器输入 or 文件地址栏 file://IP/myshare/ 3. 使用linux访问samba服务器 {要安装samba-client} //用法 :smbclient //IP/共享名 -U 用户名 [root@localhost]# smbclient //10.0.4.67/myshare/ -U user1 Password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: > ls
    ******这里出现的问题**********
    1.tree connect failed: NT_STATUS_ACCESS_DENIED
    出现问题的原因:在配置文件的global中设置了security=share,而没有在共享片段里设置public=yes

    解决方法: --》

    把global中的 security=share删掉

    或在共享片段,即[share]/[myshare]中加入public=yes

    2.session setup failed: SUCCESS - 0

    解决方法: --》

    将原本的网络连接:NAT连接 --》 改成桥接模式即可(未实验,不知是否成功)

    *****************************
    /*常用的有cd, ls, rm, pwd, tar, mkdir, chown, get, put等等,使用 help+ 命令可以打印该命令如何使用,其中get是下载,put是上传。也可使用挂载: mount -t cifs //10.0.4.67/myshare /mnt -o username=user1,password=123456 格式就是这样,要指定 -tcifs//IP/共享名本地挂载点 -o后面跟username 和 password 挂载完后就可以像使用本地的目录一样使用共享的目录了,注意共享名后面不能有斜杠。*/
  • 相关阅读:
    计算机系统概述
    Qt学习--初学注意事项
    Qt实现一个简单的TextEditor
    Qt 用户登录界面
    C++ 模板
    多态与虚函数
    继承与派生
    C++ 运算符重载
    web安全-点击劫持
    web安全问题-cookie
  • 原文地址:https://www.cnblogs.com/frankielf0921/p/5398329.html
Copyright © 2011-2022 走看看