1、如何搭建SAMBA服务器主机环境:window xp+vmware7.10+Ubuntu10.10开发板:mini2440内核:2.6.32.2(板子自带的)交叉编译器:arm-linux-gcc-4.4.3samba:samba-latest.tar也就是最新版对于linux与windows共享,和平共处,我们可以用Samba软件。Samba是一套免费的开源软件,可以在linux或其他类unix操作系统上实现windows域控制器,文件服务,打印服务等。Samba实现了windows系统所使用的核心网络协议:SMB(Server Message Block)。对于linux与windows共
2、享,和平共处,我们可以用Samba软件Samba是一套免费的开源软件,可以在linux或其他类unix操作系统上实现windows域控制器,文件服务,打印服务等。Samba实现了windows系统所使用的核心网络协议:SMB(Server Message Block)Samba可以提供如下功能:活动目录服务(Active Directory Server, ADS)主域控制器(Primary Domain Controller, PDC)共享目录共享打印机Samba是一个高性能的服务软件,只需要更低的硬件就可以实现windows server相同的性能。一、安装Sambasudo apt-ge
3、t install samba安装完成之后,在windwos上访问(我的linux server ip:192.168.1.66):输入192.168.1.66 如图:通过标题栏可以看出已经可以访问了,但里面没有共享资源二、Samba的配置Samba的配置文件是/etc/samba/smb.conf , (SMB: windows系统所使用的核心网络协议),它所使用的语法和windows的.ini文件差不多。注:在修改配置练习时,请备份原配置文件最简单的配置globalsecurity=sharelinux_sharepath=/home/linux/sharepublic=yes这个配置分成
4、两段:第一段:global第二段:linux_share 这是一个自己定义的名字,当从windows访问时,就可以看到这个共享文件夹的名称security=share, 表示安全等级为share,这样用户不需要经过密码验证了。path定义了共享的文件夹的路径public=yes 表示公开给所有人访问配置完成时,检查一下配置文件的语法:用testparm命令如图:重启Samba生效sudo /etc/init.d/smbd restart (此语法在ubuntu中不建议使用,应采用 service smbd restart)现在通过windows访问可以看到我们创建的共享文件夹了三、Samba的
5、安全认证Samba提供了安全认证等级,分4个级别:share : 不需要输入用户名和密码user : 需要输入用户名,密码, Samba对用户进行认证server : 认证工作由另一台Samba服务器或者Windows server负责domain : 指定一台windows server来进行用户认证其中user是Samba的默认安全认证级别,也就是说在/etc/samba/smb.conf配置文件中,将security一行改为security=user,那么用户在浏览共享内容前,就必须输入用户名和密码。现在把安全级别提升为usersudo vim /etc/samba/smb.confgl
6、obalsecurity=userlinux_sharepath=/home/linux/sharevalid users=cdyemail #指定有效的用户,多个用可访问用逗号隔开public=no #公开访问为否sudo /etc/init.d/smbd restart (此语法在ubuntu中不建议使用,应采用 service smbd restart)通过windows访问如图:现在要密码了,但是输入linux的用户名和密码无法通过认证,如果想让Samba通过认证,需要以下几点:(1)、在ubuntu系统中创建用户(2)、在Samba中创建该用户(3)、在windows中创建相同的用户
7、(和Samba用户密码相同)1、在Ubuntu中创建用户如果要将某个资源共享给新用户,必须先用adduser命令向Ubuntu中添加该用户。如:我们打算将某个资源共享给一个叫做cdyemail的用户,首先要做的就是在Ubuntu系统中创建这个用户sudo useradd cdyemail这样,系统中就有了cdyemail这个用户了。2、在Samba中创建用户Ubuntu系统中的用户,和Samba用户是两回事,要将资源共享给某个系统中的用户,必须将该用户添加到Samba中。添加方法:sudo smbpasswd -a cdyemail#smbpasswd是命令, -a表示add user , c
8、dyemail表示用户名这样cdyemail的认证信息就被写入到Samba中了。重启Samba生效添加完用户和密码后,现在可以在windows中通过这个用户名和密码进行访问了。3、在windows中创建相同的用户在windows客户端中,我们需要创建与samba中完全相同的用户名和密码,这样才能通过Samba的认证,我们在windows客户端上打开Samba共享资源时,Samba会自动将windows环境中的用户信息传递到服务器上进行验证,因此如果登录的windows用户和Samba用户名相同的话(密码也相同),就不需要输入密码了,自动就能通过认证。我在测试中通过,相当给力!4、Samba用户
9、密码修改如果修改密码了,则windows与Samba都要同步修改。在Samba中修改的方法如下:sudo smbpasswd cdyemail #cdyemail为要修改的用户名如果windows不修改,则要手动输入Samba修改后的用户名和密码,windows修改后要求注销一下(重登录)三、共享权限的控制目录我们只要以访问文件的内容,但没有权限修改文件,也无法向共享目录添加新文件。1、添加文件写入权限globalsecurity=userlinux_sharepath=/home/linux/sharevalid users=cdyemailwriteable=yes #添加一句,表示具有写
10、权限了public=no重启samba服务sudo /etc/init.d/smbd restart,之后就可以写文件了,但要求服务器上的目录本身有这个权限。我测试时用rwx权限测试成功。对于服务器目录权限的测试:由于我共享的是share目录,创建时用root,所以在默认的情况下,即使开了writeable也没有权限写,因为服务器目录的本身权限有问题。(1)先修改用户所属sudo chown cdyemail:cdyemail(2)只保留cdyemail用户有权限访问这个目录sudo chmod u+rwx,g-rwx,o-rwx share(3)访问,测试写文件测试成功,cdyemail用户
11、有权限写。*未完*由于现在要在命令行下进行数据共享的工作,所以先记录到这儿,有时间再记录其它的功能访问服务器的共享资源:服务器配置如下,一个要求用户认证的共享,一个大众都可能访问的。globalsecurity=usershare_resourcepath=/home/linux/sharevalid users=shareuserwriteable=yespublic=nopublicpath=/home/linux/publicwriteable=yespublic=yes要点:在文件结尾添加如下行:sharecomment=this is Linux share directorypat
12、h=/home/myth/sharepublic=yeswritable=yes保存退出,启动Samba服务:#/etc/init.d/smbd start 旧命令形式,已经改为service smbd restart设置完成!在Windows 下访问共享目录,可点击运行,输入192.168.0.10share这样就能以匿名用户访问共享目录share了。客户机访问如下:安装:smbclient , smbfssmbclient可以查看资源,下载资源等,这里用mount挂载远程的共享目录sudo mount -t smbfs -o username=shareuser,passwd=* /192
13、.168.1.66/share_resource /mnt/data#smbfs是文件系统类型#share_resource就是在samba中定义的共享名称,挂载到/mnt/data目录上*下载samba解压,进入source文件夹,这是samba的主文件夹,主函数在这个文件下。1.建立脚本(config.sh)内容:./configure CC=arm-linux-gcc LD=arm-linux-ld ranlid=arm-linux-ranlid AR=arm-linux-ar -target=arm-linux -host=i686samba_cv_CC_NEGATIVE_ENUM_V
14、ALUES=yes修改权限后在source目录下执行./config.sh2.等配置完成后在当前目录下:make居然没错。3.makeinstall prefix=/home/gudujian/samba4.cd /home/ gudujian /samba上面第3步也可以用:make installbin prefix=/home/aizi/samba ,这样就不会安装手册了,节省10几M吧。下面就是打包下载mini2440的文件系统中。(下面所有目录都是mini2440中的目录)1.将刚才的samba目录下载到mini2440文件系统的/usr/local 下。做过的人说必须是这个目录我也
15、不知道为什么。2.进入/usr/local/samba/sbin运行:./smbd b3.建立/home/gudujian/2440目录4.在/usr/local/samba/lib下建立smb.conf文件:内容:globalworkgroup =Mygroupserver string =Sambanetbios name =myarmguest account=rootsecurity =sharesharepath =/home/gudujian/2440writeable =yesguest ok=yesbrowseable=yes5.在/usr/local/samba/sbin目录
16、下./smbd -D./nmbd D6.进入目录/home/gudujain/2440 执行touch00.c7.要想在windows下访问还需要将主机和开发板改为一个号段。我的PC机号段是219.222.172 板子的是:192.168.1如果板子的改为219.222.172. 老是连接不上,无奈只能将主机的改为192.168.1.的号段了。主机IP:192.168.1.220开发板IP:192.168.1.230另外主机和开发板的gateway必须一样这里都设置为 192.168.1.254开发板和主机之间用交叉网线连接起来在主机开始ping开发板:点击开始运行输入:192.168.1.2
17、30可以看到开发板上的内容了:此时可以看到开发板自带的telnet可以在主机中登陆:此时在主机下用Bridged方式联网的Ubuntu10.10 设置为192.168.1.210Gateway设为192.168.1.254之后也可以ping的通开发板:8.可以将samba设置到/etc/init.d/rc.d文件中开机启动了gudujian2011-10-19 20:57看到有些兄弟编译不过去在这里把源码地址放上去:一般来说开发板默认IP:192.168.1.230。主机如果想与开发板连接需要设置与板子同一个网段。解决windows7客户端无法访问Samba服务器的故障1.确认TCP/IP helper ,Computer Browser、server、Workstation都是开启。2.查看Windows Firewall/Internet Connection Sharing (ICS)服务能否被启用?如不能,请利用插件修复后,再试试该服务能否启用,如能,则将Computer Browser重新启用后,楼主再试试能否用IP访问
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1