samba的功能很简单,就是为了使linux和windows之间能够实现共享。并且利用samba搭建文件服务器,不仅比windows功能强大,而且访问速度快、安全。samba服务器具有这么多优点,看来学习搭建samba是网管必须的任务了。首先说明,samba服务器需要两个守护进程:smbd和nmbd。smbd进程监听139TCP端口,处理到来的SMB数据包;nmbd进程监听137、138UDP端口,使其他主机能浏览linux服务器。

  一:安装和启动samba服务器

  ·安装samba服务

  首先使用yum list samba命令查看系统中是否已经安装了samba服务。如果没有放入第一张光盘,并挂载光驱。最后安装samba需要的组件。samba需要以下3个组件samba_common_2.2.7a_7.9.0.i386.rpm、samba_2.2.7a-7.9.0.i386.rpm 、samba_client_ 2.2.7a_7.9.0.i386.rpm.
在/etc/xinetd.d/swat
service xinetd restart 重启

/etc/samba/smb.conf 主配置文件
/etc/samba/lmhosts 实现ip地址对应关系
/etc/samba/smbpasswd 提供密码
/etc/samba/smbusers 对应windows与linux之间的账号关系

有两个进程控制smb服务
nmbd netbios udp137 138
smbd  文件共享 tcp445 139

  ·启动samba服务

  安装完成后,使用service smb start 命令启动samba服务。如果想让samba服务开机自动加载,可使用ntsysv命令打开开机自动加载的服务,并勾选smb,确定后即可实现开机加载samba服务。

二:配置samba服务

  samba服务的配置文件是 /etc/samba/smb.conf,我们使用VI编辑器打开smb.conf文件,对samba进行配置

  smb.conf文件中包括4中结构,【Global】、【Homes】、【printers】、【Userdefined_shareName】,其中:

  Globa用于定义全局参数和缺省值

  Homes用于用户的home目录共享

  Printers用于定义打印机共享

  Userdefined_ShareName用于自定义共享(可有多个)

  说明:文件中开头带有“#”为说明文件,不执行。 开头带有“;”为举例文件,不执行(若想让其执行,去掉“;”)。

  ·配置全局参数【Global】

  1>基本全局参数

  workgroup 设置samba要加入的工作组

  server string 指定浏览列表里的机器描述

  2>日志全局参数

  log file 指定日志文件的名称

  max log size 指定日志文件的最大尺寸(KB)


  3>安全全局参数

  security 定义samba的安装等级,share--用户不需要用户名和密码即可登陆samba服务器;user--由提供samba服务的samba服务器负责检查帐户及口令;server--检查帐户及口令的工作指定由另一台WindowsNT/2000或samba服务器负责;domain--指定windowsNT/2000域控制器来验证用户帐户、密码

  encrypt passwords = yes

  smb passwd file = /etc/samba/smbpasswd

  这两行用于设定是否对samba密码进行加密,并指定加密文件存放路径.

  

  hosts allow 定义允许访问此服务器的IP地址,如192.168.1. 意思为只有192.168.1.0这个网段的IP才能访问该服务器

  

  ·配置home共享【home】

  由于在home共享默认将用户的宿主目录进行了共享,这是十分危险的。所以我们必须删除home共享,方法很简单,将所有的指令前加“;”或“#”,让这条指令不执行,也就不对用户的宿主目录共享了

  

 

  ·配置自定义共享

  自定义共享,只需在文件最后加入【share】,名字随便取。其中一的参数我们来依依介绍

  comment 描述该共享的名称

  path 定义该共享的目录

  browseable 指定共享的目录是否可浏览

  writable 指定共享的目录是否有写入权限

  read only 指定共享的目录为只读权限

  public 指定是否可以允许Guest帐户访问

  guest ok 通public相同,yes为允许guest访问

  only guest 指定只有guest用户可以访问

  calid users 指定访问该共享的用户

  

 

  ·配置完成后的工作

  在配置完成后,我们只需新建path定义的共享目录,并使用chmod命令设置了其权限为777。

  这样在重启smb服务后客户端就可以访问该服务器(我修改了全局参数中的security=share,所以进入服务器不需要输入用户名和密码)
    为smb用户设置密码
smbpasswd -a 添加用户到smb,并添加密码
-x    把这个用户从smb中删除
  进入samba服务器后,我们没有看到任何文件,是因为我们设置了browseable=no,这样客户端访问是不能浏览目录的。如果想让客户端浏览目录,修改browseable=yes
客户端命令
smbclient -L [//主机或ip] [ -U 用户账号]
-L 查询该主机所共享的目录资源
-U 通过用户账号来尝试获得该主机的使用资源
smbclient -L //192.168.0.126

smbclient //主机或ip/共享的文件
smbclient //192.168.0.126/Mydata

smb 挂载的文件系统是cifs
mount -t cifs //192.168.0.156/ghost /mnt -o username=ghost 本地挂载

chcon -tR 改共享目录的标签