samba 基于ubuntu 12.04 Desktop(服务器平台)

README

  • 作者:邢万里

前言

  1. 这篇博客是关于samba在Ubuntu下的安装及使用。
  2. 环境:Ubuntu12.04Desktop,win7旗舰版,服务器平台。
  3. 所需包:samba,samba-common,samba-common-bin,smbclient
  4. 条件:保持网络通畅(字符界面可以用ping来检查是否网络通畅);win7需要secpol.msc解除限制(后文会提及)。

环境搭建

  1. 安装Ubuntu12.04Desktop,并使用#sudo apt-get install <包的名称>。包的名称就是前言中的四个包。注意的是,一定要保持网络通畅,如果发现有包没有安装上,请到软件中心查“samba”,并使用samba源即可。
  2. 安装后,配置configure文件。samba的conf文件在/etc/samba目录下,全称叫smb.conf。在操作之前备份conf文件,万一后文有差错可以用备份conf代替原来的,重新再来:#cp /etc/samba/smb.conf /etc/samba/smb.back_up。备份后开始操作conf文件,因为conf文件是只读文件,需要用超级用户权限改动文件:#sudo gedit /etc/samba/smb.conf。只需略微改动,添加需要共享文件部分即可。插入如下代码到文末(文件位置不限制,只是这样便于修改,如果需要注释,则使用符号#井号和;分号):
    #share目录为testuser用户所拥有,win7下访问需要输入testuser和其密码。
    [share]
    comment = hello
    path = /home/share
    valid users = testuser
    #public目录为所有用户均可访问,无需输入用户名和密码。
    [public]
    comment = hello
    path = /home/publicDIR

    第一行:[ ]中括号内的内容表示你将会在Windows上看到的文件名称,这里是share,则在win7下看到的共享文件名称为share(必须)。
    第二行:comment,译为注释,无实际意义(可选)。
    第三行:表示共享的文件的路径(必须)。
    第四行:有效用户为test,表示win7下登陆后,需要以test身份登陆。
    此外,还需要将[printers]和[home]注释掉,无需改动security = user或者security = share。设置完后保存退出,根据上述添加的设置,继续相关操作。
  3. 相关操作:
    创建上述文件:#sudo mkdir /home/share /home/publicDIR。
    创建系统用户:#sudo useradd testuser。
    设置testuser用户系统密码:#sudo passwd testuser。
    设置samba用户(设定密码):#sudo smbpasswd -a testuser。
    使samba用户有效:#sudo smbpasswd -e testuser(可选,有些机器需要使用,建议使用该命令),输入SMB密码(注:smb密码是指win7下访问的密码,不同于UNIX密码,UNIX密码是指在Linux下登陆testuser用户的密码)。
  4. 测试conf文件语法是否正确:#testparm。如果在[xxx]前存在error错误,即语法存在问题(如valid users写成valid user等)。

共享操作

  1. 重启samba服务,使得修改过后的conf生效:#sudo /etc/init.d/smbd restart。(12.04之前版本是#sudo /etc/init.d/samba restart)。
  2. win+R开始“运行”,又称命令行窗口。输入\+Linux机器的IP地址,如:\192.168.1.12。即可打开Linux机器上的共享目录,此时能看到文件叫share。点击share后,输入用户名testuser和SMB密码即可;如果是public文件则无需输入任何东西。

常见问题

  1. samba服务无法启动,无法执行#sudo /etc/init.d/smbd restart。先查看init.d下存在的文件,是否有smbd或者samba,如果有则代替,即#sudo /etc/init.d/samba restart。如果没有,则说明你的安装包没有安装全,可以查看软件中心搜索samba,并使用此源。
  2. win7访问拒绝,请在win+R快捷键使用“运行”,输入secpol.msc,点击“本地策略”,点击“安全选项”,点击“网络安全:LAN管理器身份验证级别”,右击属性,设置为“发送LM和NTLM - 如果已协商,则使用……”,点击确定即可。
  3. 使用#sudo /etc/init.d/smbd restart提示不可使用等情况,可尝试#sudo service smbd restart操作,如果依然不行,检查init.d下是否存在samba文件。

Any suggestion or comments are welcome!