window提供了一个方便共享文件和打印机的方法——Server Message Block(SMB),即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样以来,使得Samba具有了更强大的功能。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而Samba较多的用在了Linux与windows之间的数据共享上面。
SMB是基于客户机/服务器型的协议,因而,一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中其它windows系统或者Linux系统共享出来的文件。
(以上均来自http://ixdba.blog.51cto.com/2895551/568644)
教程目的:
- 让linux成为共享服务器,然后在windows中查看。
- 让linux成为客户端,以匿名和非匿名两种方式访问windows中的共享文件。
教程器材及软件:
- 树莓派的板子。
- SD卡(已经有镜像刷入)。
- 电源线及USB充电器。
- U盘或USB硬盘
- putty和psftp。(可以到http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html下载)
- 有DHCP的网线。
步骤:
安装samba:
- 这个十分简单如同平常安装一样:
sudo apt-get install samba
成为共享服务器:
- 安装完了之后,其实就可以在windows共享中看到有一个叫RASPBERRYPI的共享,但是进去后是没有东西的,因为,我们还没有添加任何共享目录。共享的配置文件在/etc/samba/smb.conf。我们现在要用vim去编辑它。在最后一行之后加入:
其中[es]表示,将来在windows中看到的共享文件夹的名字。[es] comment = embeded system assignments monitor. read only = yes locking = no path = /home/pi/es guest ok = no valid users = pi
comment 传说是对共享文件夹的描述,但是我在windows中没看到这个。
path就是你要共享的路径了。
guest ok = no 表示不允许匿名,yes表示可以匿名登录,也就不要密码了。
valid users = pi 表示,只能以pi用户登录,如果不能匿名登录的话。
- 要想上面起作用,还需要为samba添加一个叫pi的用户才行。
然后就要求输入密码了。sudo smbpasswd -a pi
- 这个时候回到windows,打开资源管理器,点击左下角的网络,进入RASPBERRYPI,看到下面这样的了。
- 然后,就可以进去看到应该有的文件了,当然,按照现在的设置,我们是只能读不能改变这些文件的。只要把read only=no就可以了。这个时候可能需要重启一下服务,也就是:
然后,就可以修改文件夹中的内容了。sudo service samba restart
成为客户端:
- 首先,需要在windows上打开,文件夹共享。文件夹->右键属性->共享选项卡->共享然后一步步操作就可以了。
- 然后在树莓派中敲入:
cd ~ mkdir win sudo mount -o username=administrator //192.168.1.100/ee ~/win
- 输入密码后,进入win文件夹,就可以看到共享内容了。(其中,username=你自己电脑的账户中的一个用户名)。
- 这种是需要密码和用户名才能登陆的,另一种是无密码用户名,也就是匿名登录。匿名登录需要在,windows上进行好些设置,因为windows默认有各种限制这种事情发生(这太不安全了)。
- 具体去参考这个吧,按照那里做一遍就可以了。http://amo96.blog.hexun.com/58726585_d.html
- 然后到树莓派中输入:
他会提示输入密码,但此时输入什么都可以进入。sudo umount ~/win sudo mount //192.168.1.100/ee ~/win
- 这样,我们就又可以看到window中的文件夹了。
参考:
- 非常详细的教程:http://ixdba.blog.51cto.com/2895551/568644
- 官方网站:http://www.samba.org/
- 又是另一教程:http://blog.youkuaiyun.com/stonecao/article/details/6894501
- 在windows下如何设置匿名共享的:http://amo96.blog.hexun.com/58726585_d.html
备注:
本教程为浙江大学计算机学院嵌入式系统课程扩展实验实验报告。