zoukankan      html  css  js  c++  java
  • CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?

    一、为什么要这么做?

    最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insight”。

    亲测有效。  要注意查看smb.conf.example,centos7的smb.conf有时是精简版。

    二、安装环境

    本机系统:Windows 7 旗舰版

    VMware:VMware Workstation 9.0

    CentOS:CentOS 6.4

    网络适配器设置为:NAT 转换

    三、查看是否已经安装“samba”

    命令:rpm -qa|grep samba

    输出结果:

    samba-client-3.0.33-3.28-1.el5
    samba-common-3.0.33-3.28-1.el5

    这里顺便说一下搭建samba服务器所需要的基本软件包:

    1. samba——>这个软件包包含了主要的daemon文件(smbd和nmbd)

    2. samba-common——>提供samba的主要配置文件(smb.conf)、smb.conf语法检测程序(testparm)等

    3. samba-client——> 当linux作为samba 客户端的时候,提供了一套所需的工具和指令。

    这下看出来了吧,samba主程序根本没有被安装

    也可以使用“service smb status”命令查看是否已经安装,执行该命令如果返回“smb:unrecognized service”,说明服务没有安装。

    四、安装“samba”

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

    这里只介绍本人的安装过程,

    详细请参考“鳥哥的 Linux 私房菜”之“第十六章、檔案伺服器之二: SAMBA 伺服器

    可以通过光盘或网络安装 samba

    1、通过网络安装

    本人就是用的网络安装,虽然有点慢,但是比较简单方便。

    命令:sudo yum install samba

    就一条命令就OK了。

    2、通过光盘安装

    仅供参考,本人没有测试过。

    先把iso镜像挂载上,一般情况下光驱的设备标识为/dev/hdc

    [root@sycflash ~]# mkdir /mnt/temp

    [root@sycflash ~]#mount /dev/hdc /mnt/temp

    [root@sycflash ~]#ll /mnt/temp/Server | grep samba

    samba-3.0.33-3.28-1.el5.i386.rpm
    samba-common-3.0.33-3.28-1.el5.i386.rpm
    samba-client-3.0.33-3.28-1.el5.i386.rpm

    ...

    [root@sycflash ~]#rpm -ivh /mnt/temp/Server/samba-3.0.33-3.28-1.el5.i386.rpm

    error: Failed dependencies:
    perl(Convert::ASN1) is needed by samba-3.0.33-3.28-1.el5.i386

    又报错了,原来是缺少所依赖的perl ASN1包。

    解决方法:安装perl-Convert-ASN1-0.20-1.1.noarch.rpm

    /mnt/temp/Server/

     [root@sycflash ~]#rpm -ivh /mnt/temp/Server/samba-3.0.33-3.28-1.el5.i386.rpm

    这时samba就能正常安装了。check一下成果:

    [root@sycflash ~]#service smb status

    smbd is stopped

    nmbd is stopped

    这时已经没有smb:unrecognized service 这样的提示了。

    五、配置 Samba

    	先在/home目录mkdir 目录 samba
    	修改 samba 权限 
    	chmod 0777 /home/samba
    	如果需要共享的目录已经存在 了,那么只修改目录的访问权限就可以了。

    命令:sudo vi /etc/samba/smb.conf

    	修改几次地方:
    	找到以下几行把注释去掉
    	setsebool -P samba_domain_controller on
    	setsebool -P samba_enable_home_dirs on
    	setsebool -P samba_export_all_rw on
    
    	修改  workgroup = MYGROUP 为 MYGROUP  工作组为你windows 的工作组,一般为WORKGROUP
    	workgroup = WORKGROUP
    	server string = Samba Server Version %v
    	netbios name = CentOSServer #网络计算机名,可以通过它访问共享文件如:\CentOSServer
    	跟着添加这两行
    	create mask = 0777
    	directory mask = 0777
    
    	然后在文件最后添加这几行
    
    	[public]
    	comment = public file
    	path = /home/samba #刚才mkdir的文件夹
    	valid users = root
    	writable = yes
    	browseable = yes
    
    	:wq命令保存退出
    	下面给出我的配置文件内容,只贴出关键部分:
    [plain] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    1. workgroup = WORKGROUP  
    2. server string = Samba Server Version %v  
    3. netbios name = CentOS  
    4. create mask = 0777  
    5. directory mask = 0777  
    [plain] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    1. security = user  
    2. passdb backend = tdbsam  
    要在“passdb backend = tdbsam”注释掉。
    刚接触Linux,原来配置文件中的分号也是注释符。
    [plain] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    1. [public]  
    2.         comment = public file  
    3.         path = /home/dev  
    4.         valid users=@root  
    5.         writable=yes  
    6.         browseable=yes  
    7.         public = yes  
    8.         admin users = root  
    9.         create mask = 0664  
    10.         direcotry mask = 0775  
    重启smb服务
    service smb restart
    添加samba用户,将root用户增加为samba用户
    smbpasswd -a root
    会提示输入两次密码,这个密码就是访问samba的密码

    六、在Windows下映射网络驱动器

    先看看能不能访问:
    在windows系统中通过IP地址或刚才定义的网络计算机名访问就可以
    在地址栏输入
    \192.168.x.x
    或
    \CentOSServer
    如果共享文件夹可以访问,打开Windows资源管理器,添加映射就可以了。

    七、常见问题

    	1、无法访问远程主机
    		先停止防火墙看看
    		service iptables stop
    	2、共享目录无法访问
    	        1)关闭防火墙: #sevice iptables stop
            2)修改 /etc/samba/smb.conf,具体配置网上有,我的如下:
                    
                security = share     ---- 这个要用上,share表示安全最低级别,其次是user,最高是server
                [共享目录名]
                    path = /home/用户名/共享目录名
                    ;read only = no  -----这个需要在前面用分号注释掉
                    writeable = yes
                    browseable = yes
                    public = yes
                    guest ok = yes
            3)SELinux作怪
                修改/etc/sysconfig/selinux 把enforcing改成disabled;然后命令行setenforce 0;
                或者用Rainsome兄说的 使用selinux强制策略:chcon -R -t samba_share_t /home/suyang/"Fedora Samba"         
            4)修改目录权限 #chmod 777 /home/wind ; #chmod 777 /home/wind/smbShare; 特别是前面一个做为上层目录权限也需要修改!!!

            5)重启samba服务 #service smb restart 或者 /etc/rc.d/init.d/smb restart

    当然你要在linux与windows之间互相能ping 通。

    链接

  • 相关阅读:
    Linux
    数据库
    第一篇文章
    解决VMware虚拟机Ubuntu 无法上网问题
    mybatis之sql标签与include标签
    第一个只出现一次的字符
    位运算 -- 只出现一次的的数字
    Oracle递归 start with...connect by...prior
    MyBatis中#{ }和${ }的区别
    表的转置 行转列: DECODE(Oracle) 和 CASE WHEN 的异同点
  • 原文地址:https://www.cnblogs.com/wicub/p/6270038.html
Copyright © 2011-2022 走看看