鉴于实在闷得慌,这里就简要介绍一下Samba这个服务的配置过程。看清楚,是简要,是最最简单,最最基础的配置,至于Samba的具体配置还有待以后继续深入学习。

Samba 这个主要是用于实现Linux与Windows系统之间跨平台的文件共享,它可以无障碍的让我们在Linux与Windows之间共享文件而无需复杂的配置,当然我这里写的只是最最简单的配置过程。对于Linux与Linux之间的共享则用NFS更为方便。

实验需求,实现Windows与Linux系统之间互相共享文件。

实验环境:

1.宿主机:windows xp sp2 ip:172.17.78.167 netmask:255.255.255.0

2.虚拟主机:cnetos 5.3   ip:172.17.78.250  netmask:255.255.255.0

3.虚拟终端:putty

4.虚拟机:vmware workstation 6.0

1.在配置一个服务之前,我们必须要做的就是首先检查我们的机子中是否已经装上所需的软件。看命令

[root@sharpshooter ~]# rpm -qa | grep samba
samba-3.0.33-3.7.el5
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
[root@sharpshooter ~]#
从显示的结果可以看到,我的机子中已经安装了实验所需的所有软件包了,如果你没装或者没装全的话可以自行挂载光盘rpm安装。抑或yum install samba*在线安装。

2.Samba的主配置文件在/etc/samba/smb.conf下,进入主配置文件所在目录

[root@sharpshooter ~]# cd /etc/samba
[root@sharpshooter samba]# ll
total 32
-rw-r--r-- 1 root root   20 Jul 21 09:11 lmhosts
-rw------- 1 root root 4096 Jul 21 09:11 passdb.tdb
-rw------- 1 root root 8192 Jul 21 09:11 secrets.tdb
-rw-r--r-- 1 root root 9897 Sep  3 22:30 smb.conf
-rw-r--r-- 1 root root   97 Jul 21 09:11 smbusers
[root@sharpshooter samba]#
看到了吧。smb.conf  我们主要修改的就是它里面的内容。

3.一般我们在配置一个服务的主配置文件之前我们都需要将原来的主配置文件复制一份备份,以防我们误操作之后可以恢复。

[root@sharpshooter samba]# cp smb.conf smb.conf.bak
4.接着我进入主配置文件,利用vim,修改成如下样子

# ----------------------- Network Related Options -------------------------

        workgroup = WORKGROUP  //工作组名称
        server string =sharpshooter's samba file server  //服务器的描述名称
# --------------------------- Logging Options --------------------------------
       

        log file = /var/log/samba/%m.log  //日志存放的路径,%m表示登录此服务器客户端的netbios名
        max log size = 50 //日志的大小

# ----------------------- Standalone Server Options ------------------------
 

       security = user  //安全级别,有share 、user、server三种级别,这里是user,即需要用户名和密码才能访问
# ---------------------------Share Definitions ----------------------------------
   [homes]  //每个用户的家目录了
        comment = Home Directories //描述信息
        browseable = no //对其他用户是否可浏览
        writable = yes //是否可写
        valid users = sharp //有效的用户

   [sharpshooter]  //这里是共享出来的目录名称
        comment = sharpshooter's  file //描述信息
        public  = no //是否公共
        path = /home/sharpshooter //共享路径
        write list = sharp //可写用户列表
        valid users = sharp test @abc //有效的用户和用户组
 

配置完成后保存退出

:x

既可以

4.建立所需的用户

[root@sharpshooter samba]# useradd sharp
[root@sharpshooter samba]# passwd sharp
Changing password for user sharp.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@sharpshooter samba]#
注意在samba的配置中,samba的用户必须要是系统中已经存在的用户,但是samba用户的密码可以不与系统中用户的密码一致,也建议不要设置成一致的,我这里只是实验,所以就设置成一致的,并且密码也设置的非常简单。

5.建立samba的用户

[root@sharpshooter samba]# smbpasswd -a sharp
New SMB password:
Retype new SMB password:
密码是不回显的,确保两次输入的一致即可

6.建立共享目录

[root@sharpshooter samba]# ll /home
drwx------ 3 sharp  sharp  4096 Sep  8 08:31 sharp
[root@sharpshooter samba]# mkdir /home/sharpshooter
[root@sharpshooter samba]# ll /home/
drwx------ 3 sharp  sharp  4096 Sep  8 08:31 sharp
drwxr-xr-x 2 root   root   4096 Sep  8 08:34 sharpshooter
[root@sharpshooter samba]# chown -R sharp:sharp /home/sharpshooter
[root@sharpshooter samba]# ll /home
drwx------ 3 sharp  sharp  4096 Sep  8 08:31 sharp
drwxr-xr-x 2 sharp  sharp  4096 Sep  8 08:34 sharpshooter
7.接着重启服务

[root@sharpshooter samba]# service smb restart
Shutting down SMB services:                                [FAILED]
Shutting down NMB services:                                [FAILED]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
[root@sharpshooter samba]#
前两次失败?你懂的。因为我服务本来就是关闭的。

[root@sharpshooter samba]# netstat -tulnp | grep smb
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      2802/smbd
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      2802/smbd

[root@sharpshooter samba]# netstat -tulnp | grep nmb
udp        0      0 172.17.78.250:137           0.0.0.0:*       2805/nmbd
udp        0      0 172.17.78.251:137           0.0.0.0:         2805/nmbd
udp        0      0 0.0.0.0:137                         0.0.0.0:*        2805/nmbd
udp        0      0 172.17.78.250:138           0.0.0.0:*       2805/nmbd
udp        0      0 172.17.78.251:138           0.0.0.0:*       2805/nmbd
udp        0      0 0.0.0.0:138                         0.0.0.0:*       2805/nmbd

看到samba服务主要是开放了139、445、137/138端口提供服务。

8.所有该配置的都配置完成之后利用客户端工具smbclient 来查看一下本机所共享的目录情况

[root@sharpshooter samba]# smbclient -L 172.17.78.250
Password:               //密码为空
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]

        Sharename       Type      Comment
        ---------       ----      -------
        sharpshooter    Disk      sharpshooter's  file
        IPC$            IPC       IPC Service (sharpshooter's file server)
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]

        Server               Comment
        ---------            -------
        PC-201008292138
        SHARPSHOOTER         sharpshooter's file server

        Workgroup            Master
        ---------            -------
        WORKGROUP            PC-201008292138
[root@sharpshooter samba]#

如需要登录可以使用以下命令

[root@sharpshooter samba]# smbclient //172.17.78.250/sharpshooter -U sharp
Password:        //密码不回显,确保安全性
Domain=[SHARPSHOOTER] OS=[Unix] Server=[Samba 3.0.33-3.7.el5]
smb: \>

 

9.实现windows与linux之间互访

 ① windows访问Linux的共享文件

 

一定要确保勾选了启用tcp/ip上的netbios,否则你在网上邻居里是不可能看到samba所共享出来的文件的。

 

双击之后出现如下登录窗口,输入正确的用户名和密码即可进入

 

 

登录进入之后

 

两个目录,一个sharp是sharp用户的家目录,一个sharpshooter是sharp用户共享出来的目录。

     ②linux访问windows的共享目录

   [root@sharpshooter samba]# smbclient  //172.17.78.167/wshare -U huangyu  即可

     其实也可以挂载windows的共享目录来的更方便,命令

   [root@sharpshooter ~]# mount  //172.17.78.167/wshare /mnt/wshare -o username=huangyu
   Password:
#------------------------------------end--------------------------------------------