电脑技术学习

Linux与Windows 通过samba互访共享资源

dn001

 关于samba网上有很多的资料,不过网上资料一般倾向于企业级别的服务器搭建。最简单的、最基本的个人pc之间的访问,写的比较少,网络资料的繁多也让人无所适从,可能通常高手都不屑于写太简单文档。我记录下最简单的配置,仅供参考。

  一、目的:

  1.linux访问windows共享文件

  2.windows访问linux共享文件(user模式-需要输入用户名和密码)

  简单描述:

  只需要在linux服务器上做samba服务的配置,两者就可以互相访问。

  windows访问linux通过网上邻居来访问,和访问windows主机没有区别。

  linux访问windows要通过mount工具来实现——把远程windows上的共享文件挂载到本地目录

  二、操作系统版本:

  1.windows机器—— windowsxp sp2

  2.linux机器—— Fedora8

  三、samba配置

  假设我们已经安装好了samba软件包。没有可以下载rpm包安装或者通过yum安装。samba配置关键就是对/etc/samba/smb.conf的编辑配置,还需要对/etc/samba/lmhost做配置。

  samba配置根据安全方式,我们只配置两种;

  share方式——匿名方式,不需要用户名和密码就可以访问共享资源

  user方式—— 访问需要用户名和密码

  1、share方式

  这种方式比较简单,不过不安全,网络上所有人都可以访问。

  1)配置/etc/samba/lmhosts

  内容:ip netbios

  2)配置文档:/etc/samba/smb.conf:

  [global]

  netbios=sambaserver #这个用了表示samba主机,和主机名不一样

  security=share #指定这个访问方式

  server string= samba server #对主机的描述

  workgroup = workgroup # windows主机的所在工作组

  #要share出来的文件

  [test] #这个可以随便写

  path=/test1

  browseable=yes #能否在浏览器里面访问。可否http访问

  writable=yes #是否可写

  guest ok=yes # 客户访问

 2、user方式

  1)配置lmhosts,同share方式

  2)添加samba用户

  这个samba用户指的是,用于登录samba主机的用户,这个是在samba主机上设定。

  注意:这个samba用户首先必须是linux系统用户,这个很好理解,你只有是linux上的系统用户,你才能够登录linux主机,而对samba服务的访问,实际上也是对linux主机的访问。

  a、首先,要添加一个linux系统用户,根用户是root,可以使用根用户,也可以添加新用户。我添加新用户dudu

  b、添加samba用户。

  执行命令:smbpasswd -a dudu # 然后输入密码,这个密码是用来登录samba的。

  c、配置smb.conf:

  #主机方面的一些参数

  [global]

  #主机名称相关的参数

  workgroup = WORKGROUP

  netbios name = ergo_haier

  server string = ergo's haier notebook

  #登录日志

  log file = /var/log/samba/%m.log

  max log size = 50

  #采取那种安全认证方式

  security = user

  #给密码加密

  encrypt passwords = yes

  smb passwd file = /etc/samba/smbpasswd

  #samba所有用户信息

  username map = /etc/samba/smbusers

  #定义那些机器可以访问,或者那些可以拒绝

  hosts allow = 10.153.11.xx

  #以上可以是网段,10.153.11. 这个代表10.153.11.0-255网段。

  #也可以是多个网段

  #以下是你想要共享的目录设置

  [haierdoc]

  comment = Haier doc

  path = /doc

  browseable = yes

  writable = yes

  valid users = dudu

  d、检查配置

  可以使用命令:testparm

  执行后,回车,会列出你所有的配置,方便观察。

  配置完成后,重启/etc/init.d/smb restart

  四、linux和windows互相访问

  1.windows访问linux

  这个比较简单,通过网上邻居就可以,和访问workgroup中的一台主机是一样的,不多做介绍

  2.linux访问windows

  如果windows有共享目录,那么需要我们通过mount命令,将远程主机上的共享目录挂载到本地目录:

  1)查看远程主机共享目录

  Smbclient -L 远程主机IP -U windows_user_name #注意 -U 后面是windows用户名

  输入密码,就会出现共享的目录:

  [root@ErgoN samba]# smbclient -L 10.153.11.1xx -U xx

  Password:

  Domain=[92D68C913D67417] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

  Sharename Type Comment

  --------- ---- -------

  G (G) Disk

  centos5.1 Disk

  IPC$ IPC 远程 IPC

  session request to 10.153.11.142 failed (Called name not present)

  session request to 10 failed (Called name not present)

  Domain=[92D68C913D67417] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

  Server Comment

  --------- -------

  Workgroup Master

  --------- -------

  2)挂载远程资源

  mount.cifs //10.153.11.1xx/centos5.1 /mnt -o user=xxx

  NOTE:网上很多文章说用smbmount,其实这个命令在比较新的系统里面已经没有了,2.6内核以后应该都没有了,使用上面的命令来代替。

  也可使用 mount -t cifs …… cifs协议包括了smbfs协议。现在也没有单独的smbfs选项了。

  可能出现问题

  1.如果出现中文乱码,可能是挂载字符问题,可以选择不同字符挂载选项

  2.如果出现不能写入等问题,一般为权限问题。

标签: linux