zoukankan      html  css  js  c++  java
  • windows7与虚拟机fedora 9.0文件共享

    主机与vmware fedora 9.0 共享文件  

    samba服务器可以实现windows与linux的文件共享,SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个 端口的服务,NetBIOS出现之后,Microsoft就使用 NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block) 协议,这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。

    Fedora Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的NetBEUI协议让Unix/Linux服务器可以在Windows的网络邻居上被访问到。

    在做嵌入式linux开发的时候,难免需要在linux宿主机开发环境与windows操作系统之间共享文件和打印等,实现的方法当然是多种多样的,这里我通过在Fedora14下建立Samba 服务器实现fedora与windows之间的文件共享。

    一、安装samba服务器

    ?安装samba服务器的方法是通过 yum 来在线安装 Samba 。

         yum -y install samba (注意:此时你的计算机必须可以上网,或你的VM虚拟机可以上网,这个命令才可以正确运行)

    也可以通过系统-管理-添加/删除程序菜单来安装,在窗口中搜索smaba,选择合适的程序版本安装即可。

    (安装过程中需要确保yum可用,网络配置正确。)

    ?然后安装 个 samba 的  图形界面管理软件 

    yum -y install system-config-samba

    二、配置smaba服务器(建议用方法2)

    方法1:

    配置主要通过编辑/etc/samba/smb.conf来实现。(要有读写权限,su到root)

    修改权限

    [root@localhost ~]#chmod 777 smb.conf

    [root@localhost ~]#gedit /etc/Samba/smb.conf ← 编辑Fedora Samba 的配置文件

    workgroup = WORKGROUP //设置工作组

    server string = %U's Samba %v //描述信息%U代表当前登陆用户

    netbios name = fedora //netbios名字,fedora9 默认没有启用

    log file = /var/log/Samba/log.%m //日志文件保存路径%m你的windows主机名

    max log size = 50 //日志最大容量

    security = user //安全级别,user需要用户名和密码,share级别则不要

    [Fedora Samba] //建立一个共享名为Fedora Samba的共享

    comment = Samba//描述信息

    path = /home /samba//共享路径

    public = no //是否允许guest用户访问(相当于guest ok = yes/no)

    writable = yes //是否可写

    write list = bsc //可以写入的用户列表(@代表用户组)

    方法2:

    注意:也可以不用打开smb.conf进行配置

    打开smb 的 管理软件

    # system-config-samba

    Preference(首选项)->Samba User (用户配置)

    上面是我配置的两个用户,如(点击Add User)增加mysystem这个用户:

    在这里要记得用户名和密码,在后面的XP登录时要用到。

    点击 增加共享的路径和可以使用共享的用户(在这里设置为: )

    单击OK,就会自动配置好smb.conf文件。

    三、建立共享目录(若用第二种方法配置,则只需执行这部分下面的红色部分)

    [root@localhost ~]# mkdir /home /samba ← 建立共享文件专用目录

    [root@localhost ~]# chown -R nobody /home /samba ← 设置专用目录归属为 nobody

    [root@localhost ~]# chmod 777 /home/samba/ ← 将专用目录属性设置为 777,否则不能将文件放在共享文件夹中

    [root@localhost ~]# smbpasswd -a root ← 将系统用户 bsc(此用户必须未已存在的,如果不存在,useradd name添加吧)加入到 Fedora Samba 用户数据库

    New SMB password:  ← 输入该用户用于登录 Samba 的密码

    Retype new SMB password:  ← 再次确认输入该密码

    [root@localhost ~]#

    第四步 启动 samba服务

    关闭防火墙

    [root@localhost ~]#service iptables stop

     或者配置防火墙:

    [root@localhost ~]#gedit /etc/sysconfig/iptables  ← 编辑 iptables 配置文件

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT  ← 找到此行,在下面添加如下行:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

    -A INPUT -p udp -m udp --dport 137 -j ACCEPT

    -A INPUT -p udp -m udp --dport 138 -j ACCEPT

    下面重新启动iptables是修改生效

    [root@localhost ~]# /etc/rc.d/init.d/iptables restart。显示ok就行了

    第五步 启动 Fedora Samba 服务(含两个守护进程:smb,nmb)

    [root@localhost ~]# chkconfig smb on  ← 设置 Fedora Samba 自启动

    [root@localhost ~]# chkconfig --list smb  ← 确认 Fedora Samba 启动标签,确认 2-5 为 on 的状态

    [root@localhost ~]#chkconfig nmb on  ← 设置 nmb 自启动

    [root@localhost ~]## chkconfig --list nmb  ← 确认 nmb 启动标签,确认 2-5 为 on 的状态

    nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    [root@localhost ~]#/etc/rc.d/init.d/smb start(或者service smb start)  ← 启动 Fedora Samba 服务

    Starting SMB services: [ OK ]

    [root@localhost ~]# /etc/rc.d/init.d/nmb start  ← 启动 nmb 服务

    Starting NMB services: [ OK ]

    通过以上配置samba服务器建立成功了,那就测试下吧:

    打开xp开始 -> 运行―>\\你的linux的ip地址([root@localhost ~]# ifconfig查看ip),输入用户名和密码,就可看到共享的文件夹了,好了,samba完全配置好了,但是真的行了吗?当你试图打开文件夹的时候发现,没有权限。

    解决方法如下:

    在其它版本的linux中(AS5,AS4,Centos)中做如上设置后就可以正常访问共享了,但是在fedora中却不行,我们只能看到共享,但是访问的时候会出现拒绝访问的情况,这是为什么呢?因为selinux对samba共享做了限制,我们只用把selinux中对samba的限制给解决了就行了,我们做如下设置就OK了:

    如下所示:

    samba_enable_home_dirs --> off

    samba_export_all_ro --> off

    samba_export_all_rw --> off

    将其全部解限:

             #setsebool  samba_enable_home_dirs on

             #setsebool  samba_export_all_ro on

             #setsebool  samba_export_all_rw on

         我们可以用命令getsebool -a查看:

         查看上面三项是否为on,打开的话你的共享应该就正常了。

    或者关闭selinux

    注意:如果使用service iptables stop 这种的方式关闭防火墙,则在下次使用samba时,要再次关闭防火墙。

      出现的问题:

    1、在连接时出现:

    主机与vmware fedora 9.0 共享文件 - 风之子 - 风之子

    fedora 9.0 的防火墙未关

    2、可以连接上目标机,但是进入文件夹时,出错,如下图:

    主机与vmware fedora 9.0 共享文件 - 风之子 - 风之子
     
     

    这是你的selinux对samba进行了限制,解决方法:

             #setsebool  samba_enable_home_dirs on

             #setsebool  samba_export_all_ro on

             #setsebool  samba_export_all_rw on


    对于上面的两个问题,因为是每次开机都是要输入上面的命令。你可以写个shell,这样每次只需运行这个shell 就得。

    个人写个shell如下,供大家参考:

    samba-shell:

    #samba start shell

    #!/bin/bash

    service iptables stop

    setsebool  samba_enable_home_dirs on

    setsebool  samba_export_all_ro on

    setsebool  samba_export_all_rw on

    echo

    echo

    service iptables status

    getsebool -a |grep samba

    service smb status

    service nmb status

    文章来自:风之子博客http://fongzhiye.blog.163.com/blog/static/20283615220121714228346/,谢谢

     
    博乐Bar
  • 相关阅读:
    简述location规则优先级-实现域名跳转-不同语言-终端跳转-错误页面返回首页-腾讯公益首页
    配置nginx访问控制-设置防盗链
    nginx虚拟机及热部署(在线升级)
    阿里云 OSS 网页端直传
    阿里云OSS Java 生成STS
    阿里ECS访问七牛及阿里OSS速度测试
    Maven学习总结(八)——使用Maven构建多模块项目
    关于部分手机无法搜索到5G wifi信号的解决方法
    Spring Boot 2.x
    利用 qshell qupload 批量迁移服务器上的网站图片到七牛云
  • 原文地址:https://www.cnblogs.com/huanzxj/p/2817134.html
Copyright © 2011-2022 走看看