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
  • 相关阅读:
    bzoj2733 永无乡 平衡树按秩合并
    bzoj2752 高速公路 线段树
    bzoj1052 覆盖问题 二分答案 dfs
    bzoj1584 打扫卫生 dp
    bzoj1854 游戏 二分图
    bzoj3316 JC loves Mkk 二分答案 单调队列
    bzoj3643 Phi的反函数 数学 搜索
    有一种恐怖,叫大爆搜
    BZOJ3566 概率充电器 概率dp
    一些奇奇怪怪的过题思路
  • 原文地址:https://www.cnblogs.com/huanzxj/p/2817134.html
Copyright © 2011-2022 走看看