在嵌入式开发当中,我们经常需要在Linux下进行交叉编译,但可能代码编辑或者版本烧写需要在Windows下进行,为了方便开发,可建立Windows与Linux的共享路径,以下记录共享的方法。以下配置在Ubuntu 14.04 LTS版本的系统中进行,其他Linux系统会有差别。

 

一、Windows下访问Linux共享目录

(1).确保Linux安装了samba服务器

(2).配置samba服务器

打开samba配置文件:vim /etc/samba/smb.conf

在文件结尾添加配置:

[UBUNTU_SHARE]

    comment = ubuntu_share

    path = /WorkSpace/share

    browseable = yes

    writable = yes

    valid users = root

[]中的字符串为在Windows下看到的共享目录的名称

comment表示Windows下显示共享目录的备注

path表示Linux下的共享文件路径

valid users表示使用用户名为root的账户登录(可以不设此项)

(3).重新启动samba服务:service smbd restart

(4).在Windows下访问Linux共享目录,需要Windows与Linux系统在同一网段内,打开我的电脑 (或随意一个文件夹),在“地址”输入 \\IP地址 (如 \\192.168.80.151),可以看到弹出需要输入账户密码的提示框,这时输入步骤(2)配置的valid users的用户名与密码即可

 

valid users = root,xiaoming,haha

可以指定多用户

path = %H

表示共享路径为登录用户的Home目录

 

注意

(1).需注意Linux下的共享目录的权限,如无特殊需求可以直接将共享目录权限设置为777 (文件所有者、用户组、其他用户可读可写可执行权限 使用命令 chmod 777 共享目录)。

(2).可以使用smbpasswd –a 用户名 为samba服务器添加用户,但必须确保“用户名”为Linux系统用户(adduser或useradd命令添加)。使用smbpasswd –a 用户名 添加的用户可用于登录Linux系统samba服务器访问共享目录。smbpasswd -x为删除用户,命令可以通过smbpasswd -h或man查看。

(3). 有些版本的Linux系统可能需要关闭防火墙和SelLinux(目前使用的Ubuntu14.04不需要)。

 

遇到的问题

开启samba服务器后,在Windows下访问Linux共享路径,提示“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接”。

解决:

打开Windows命令行,用net use查看当前与网络资源的连接,使用net use * /del /y命令中断所有连接,再进行访问就可以正常访问。

 

 

二、Linux挂载Windows共享目录

(1).在Windows系统中设置共享文件夹,选定文件夹右键菜单中的“共享和安全”,勾选“在网络上共享这个文件夹”和“允许网络用户更改我的文件”

(2).使用命令将Windows共享目录挂载至Linux文件系统:

mount.cifs –o user=”username”,pass=”password” //IP地址/Windows共享路径 /Linux下的挂载路径

如:mount.cifs –o user=”black.chen”,pass=”123” //192.168.80.128/wins_share /Work/share

挂载后就可用过/Work/share目录操作Windows系统下的共享目录了。

使用 umount /Work/share 可以卸载目录

 

注意

(1).Windows使用共享功能时,需要启动Server服务 (Windows服务和应用程序中的服务)

(2).可能需要关闭Windows的防火墙,有些版本的Linux系统可能需要关闭防火墙和SELinux,使用Ubuntu14.04 x64,需要关闭ufw (防火墙)。