Samba服务器简单配置步骤

1.挂载iso光盘

  [[email protected] ~]# mount -o loop /dev/cdrom /mnt/cdrom

2.安装samba软件

 [[email protected] ~]# cd /mnt/cdrom/Server/

[[email protected] Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm 

如果不能安装,提示缺少依赖包的话,看提示安装相应软件,我的需要安装

[[email protected] Server]# rpm -ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm 

3.安装成功之后,就可以进行相应的配置的,先进入配置文件目录,并打开配置文件

 [[email protected] Server]# cd /etc/samba/

[[email protected] samba]# vim smb.conf 

4.本实验可以通过一个小实例来进行讲解实例要求如下

     匿名用户可以访问目录/var/smb/public,共享名为public,权限只可读,user1可以访问/var/smb/user,共享名为smbuser,权限可读可写。

     实验所用服务器版本是:redhat5.4192.168.2.10),测试机windows 2003192.168.2.12

 实验步骤:

  1> 打开配置文件,如上文所做步骤,再进行如下修改

          [global]

               workgroup = MYGROUP         //用户组组名

                server string = Samba Server      //登录服务器时显示的信息

            log file = /var/log/samba/%m.log   //打开日志信息

             security = share                //安全级别为匿名(如果为user的话,那么,匿名登录就不可以了,所以应该使用share级别)

             passdb backend = tdbsam

下面是共享的目录及其说明

        [public]                           //共享目录显示的名字

        comment = Public'share              //说明信息

        path = /var/smb/public               //共享的目录

        public = yes                        //可匿名登录

        writable = no                       //不可写

        [smbuser]          

        comment = user'share

        path = /var/smb/user

        public = no                        //不允许匿名用户登录

        writable = yes                      //可写

        Valid users=user                     //只允许user登录

 2>  启动smb服务器

         [[email protected] samba]# service smb start

          Starting SMB services:                                     [  OK  ]

          Starting NMB services:                                     [  OK  ]  

     3> 创建smb用户及密码

[[email protected] samba]# smbpasswd -a user

New SMB password:

Retype new SMB password:

Added user user.

[[email protected] samba]# 

创建目录,并修改/var/smb/user为可写权限

  [[email protected] samba]# mkdir /var/smb

[[email protected] samba]# mkdir /var/smb/public

[[email protected] samba]# mkdir /var/smb/user

[[email protected] samba]# ll /var/smb

total 8

drwxr-xr-x 2 root root 4096 Dec 18 20:51 public

drwxr-xr-x 2 root root 4096 Dec 18 20:51 user

[[email protected] samba]# chmod o+w /var/smb/user

 4> windows xp上进行测试,登录共享

             Samba服务器简单配置步骤

          

我们看到如下几个目录

Samba服务器简单配置步骤

可以测试下,我们不可以在public目录下创建目录与文件,但是如果点击smbuser目录,会出现登录框,让我们输入user的密码,输入密码后我们才能够进入这个目录,并且可以创建,删除文件。

 5.  linux下的smb服务器中还有一个客户端软件:samba-client-3.0.33-3.14.el5.i386.rpm

安装这个文件之后就可以正常的访问共享的文件,包括windows下的共享文件

 下面也来做一个小实验

  条件和上面的的要求相同,只是是在windows 2003下进行共享设置,在Linux下来获取共享文件

  1》共享目录c:/public为匿名登录,配置如下

  

Samba服务器简单配置步骤

在系统中新建一个用户user,密码为123,user目录进行配置,配置如下

Samba服务器简单配置步骤

现在可以在linux下对这两个共享目录进行访问

 

2》对于远程的共享目录,我们可以先使用命令查看一下有什么目录是共享的

[[email protected] samba]$ smbclient -L  //192.168.2.12

Password: 

Anonymous login successful

Domain=[WORKGROUP] OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2]

Sharename       Type      Comment

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

cli_rpc_pipe_open: cli_nt_create failed on pipe \srvsvc to machine 192.168.2.12.  Error was NT_STATUS_ACCESS_DENIED

Error returning browse list: NT_STATUS_ACCESS_DENIED

Error connecting to 192.168.2.12 (Connection refused)

Connection to 192.168.2.12 failed (Error NT_STATUS_CONNECTION_REFUSED)

NetBIOS over TCP disabled -- no workgroup available

从上面可以看出,我们是没有查看成功的,因为在windows 2003中,系统默认的是不能够以匿名用户查看及登录的,我们需要把windows2003中的guest用户开启,才可以允许匿名登录。

开启guest用户之后(不要为guest用户设置密码)再次查看

[[email protected] samba]$ smbclient -L  //192.168.2.12

Password: 

Domain=[ADMIN-GESFOVR50] OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2]

Sharename       Type      Comment

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

C$              Disk      默认共享

IPC$            IPC       远程 IPC

ADMIN$          Disk      远程管理

public          Disk      

user            Disk      

Error connecting to 192.168.2.12 (Connection refused)

Connection to 192.168.2.12 failed (Error NT_STATUS_CONNECTION_REFUSED)

NetBIOS over TCP disabled -- no workgroup available

 也可以查看时后面加上用户名,如smbclient -L  //192.168.2.12 -U user

3》在查看到共享的目录之后,我们就可以进行这个共享目录进行操作了,进入目录的方式

   (1) 进入需要用户与密码的共享文件目录方法

        [[email protected] ~]# smbclient //192.168.2.12/user

Password: 

Domain=[ADMIN-GESFOVR50] OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2]

smb: \> dir

NT_STATUS_ACCESS_DENIED listing \*

40943 blocks of size 524288. 35153 blocks available

smb: \> quit

[[email protected] ~]# smbclient //192.168.2.12/user -U user

Password: 

Domain=[ADMIN-GESFOVR50] OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2]

smb: \> dir

  .                                   D        0  Wed Dec 19 00:21:19 2012

  ..                                  D        0  Wed Dec 19 00:21:19 2012

  user                                A        0  Tue Dec 18 21:24:51 2012

我们还可以在其中创建目录及文件等操作

(2)匿名用户进入共享目录

        在匿名用户进入共享目录的时候,我使用window2003做的共享,可以进入目录,但是使用dir命令查看的时候,去不能查看到任何的文件,不知道怎么回事,我尝试用windows xp做共享目录,是可以实现的,下面的是在windows xp上实现的步骤

        [[email protected] ~]# smbclient //192.168.2.2/aa

Password: 

Domain=[name] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

smb: \> dir

  .                                   D        0  Wed Dec 19 00:25:16 2012

  ..                                  D        0  Wed Dec 19 00:25:16 2012

  public                              A        0  Wed Dec 19 00:25:11 2012

61454 blocks of size 524288. 35391 blocks available

匿名用户是不能进行创建删除操作的。

4》 在linux上我们不但能够直接使用远程的windows共享资源,还可以直接把远程共享资源使用mount命令挂载到本机的一个目录上,这样的话,就更便于实现了,现在我们以远程共享目录user来做这个实验,这个共享目录挂载到本机的/mnt/public目录上。

    [[email protected] ~]# umount /mnt/public/

[[email protected] ~]# mount.cifs //192.168.2.12/user /mnt/public -o username=user

Password: 

[[email protected] ~]# ll /mnt/public/

total 0

drwxrwxrwx 1 root root 0 Dec 19 00:28 a

-rwxrwSrwx 1 root root 0 Dec 18 21:24 user

现在就挂载成功了,但是如果有一个固定的共享文件的服务器,我们每次开机时不可能都要重复这一个动作,所以我们可以通过使用开机启动的方式来挂载这个远程共享。

[[email protected] ~]# umount /mnt/public/

[[email protected] ~]# vim /etc/fstab   添加如下内容

 //192.168.2.12/user       /mnt/public           cifs     defaults,username=user,password=123 0 0

现在再重新让系统挂载一次:[[email protected] ~]# mount -a

现在用mount命令就可以看到又重新挂载上了。

   5》但是这样虽说是挂载上了,但是我们知道/etc/fstab文件是一个其它用户可读的文件,这样的话,那么我们直接在这个文件中写入了密码,是极其不安全的,因此我们可以采用另一种更好的方法来实现开机的挂载。

[[email protected] ~]# vim /etc/fstab

//192.168.2.12/user       /mnt/public           cifs     defaults,credentials=/etc/pwd.conf 0 0

 [[email protected] ~]# vim /etc/pwd.conf     添加如下内容

   username=user

password=123

 [[email protected] ~]# chmod 400 /etc/pwd.conf    //为其它用户不分配查看的权限

 [[email protected] ~]# mount -a

  现在就可以看到远程共享就重新挂载上了,并且达到了安全的目的。