实验拓扑:

         Linux Client

-----RHEL5.9(vmnet1)----------(vmnet1)

         Win7 Client


实验一:Samba匿名共享

工作组为Tarena

将目录 /usr/src 共享给所有人

共享名设为 tools

允许所有人访问、无需密码验证

访问权限为只读


1、安装软件包

[root@localhost ~]# rpm -q samba-client samba samba-common  //查看安装包

package samba-client is not installed

package samba is not installed

package samba-common is not installed

[root@localhost ~]# cd /etc/yum.repos.d/                //进入yum.repos.d目录下

[root@localhost yum.repos.d]# cp rhel-debuginfo.repo rhel-server.repo  //复制yum

库配置文件

[root@localhost yum.repos.d]# cat rhel-server.repo    //配置yum库

[rhel-server]

name=Red Hat Enterprise Linux Server

baseurl=file:///misc/cd/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

//放入rhel5.9 iso

[root@localhost yum.repos.d]# yum clean all             //清空yum缓存

[root@localhost yum.repos.d]# yum -y install samba samba-client samba-common //

使用yum库安装samba

2、修改主配置文件

[root@localhost ~]# cd /etc/samba/

[root@localhost samba]# cp smb.conf smb.conf.bak      //备份samba主配置文件

[root@localhost samba]# vim /etc/samba/smb.conf 

...

 74         workgroup = Tarena                      //设置工作组

 75         server string = Win File Ser 

...

 89         log file = /var/log/samba/%m.log        //设置日志文件

...

 91         max log size = 50                    //日志文件最大容量

...

101         security = share                  //设置安全级别

...

221         load printers = no              //屏蔽共享时看到的打印图标

...

289 [tools]

290         comment = Tools Public        //描述信息

291         path = /usr/src               //共享实际路径

292         public = yes                  //是否所有人可用

293         read only = yes               //权限为只读

3、启动服务

[root@localhost ~]# testparm                  //检查语法

[root@localhost ~]# service smb restart       //重启smb服务

[root@localhost ~]# chkconfig smb on          //设置开机自启动

[root@localhost ~]# netstat -anptu | grep mbd   //查看监听端口

tcp    0  0 0.0.0.0:139    0.0.0.0:*      LISTEN      7008/smbd    

tcp    0  0 0.0.0.0:445    0.0.0.0:*      LISTEN      7008/smbd    

udp    0  0 192.168.1.10:137     0.0.0.0:*           7011/nmbd    

udp    0  0 0.0.0.0:137           0.0.0.0:*           7011/nmbd    

udp    0  0 192.168.1.10:138     0.0.0.0:*           7011/nmbd    

udp    0  0 0.0.0.0:138           0.0.0.0:*            7011/nmbd   

4、客户端测试:

Windown:

UNC路径 \\\\192.168.1.253

Linux客户端:

[root@localhost ~]# yum -y install samba-client     //安装samba客户端

[root@localhost ~]# smbclient -L 192.168.1.253      //查看共享信息

[root@localhost ~]# smbclient //192.168.1.253/tools      //访问共享文件夹

[root@localhost ~]# mkdir -p /data/smb

[root@localhost ~]# mount -t cifs //192.168.1.253/tools /data/smb///挂载samba

到本地

[root@localhost ~]# grep smb /etc/fstab    //设置为开机自动挂载

//192.168.1.253/tools   /data/smb    cifs   defaults  0  0

试验二 Samba用户验证

修改原有的 [tools] 匿名共享设置

不再允许所有人访问

只允许nick读取、tom写入

拒绝其他用户或匿名访问

上传目录的权限为755

上传文件的权限为644

1、新建相应账户与samba密码

[root@localhost ~]# useradd nick             //新建用户

[root@localhost ~]# useradd tom

[root@localhost ~]# echo "redhat" | passwd --stdin nick   //为用户设置密码

[root@localhost ~]# echo "redhat" | passwd --stdin tom

[root@localhost ~]# pdbedit -a nick        //添加用户为共享帐号,并设置密码

[root@localhost ~]# pdbedit -a tom

2、修改主配置文件

[root@localhost ~]# vim /etc/samba/smb.conf           //编辑主配置文件

...

101         security = user                     //设置安全级别

...

289 [tools]

290         comment = Tools Public

291         path = /usr/src

292         public = no                     //取消默认所有人可用

293         valid users = nick,tom       //共享帐号

294         write list = tom              //有写入权限用户列表

295         read only = yes              //默认只读

296         directory mask = 0755        //上传目录权限

297         create mask = 0644             //上传文件权限

...

[root@localhost ~]# setfacl -m u:tom:rwx /usr/src/       //为用户添加acl权限

3、启动服务

[root@localhost ~]# service smb restart         //重启服务

4、客户端测试

[root@localhost ~]# smbclient -U nick //192.168.1.253/tools    //使用用户nick访


问共享

[root@localhost ~]# mount -o username=nick //192.168.1.:253/tools /data/smb


试验三 Samba账户别名与访问地址控制

把普通帐户nick设置别名为jim

设置只允许192.168.1.19地址访问


1、修改Samba用户别名文件

[root@localhost ~]# vim /etc/samba/smbusers   //编辑别名文件

# Unix_name = SMB_name1 SMB_name2 ...

root = administrator admin             

nobody = guest pcguest smbguest

nick = jim                    //为nick设置别名jim

2、修改主配置文件

[root@localhost ~]# vim /etc/samba/smb.conf        //编辑主配置文件

...

 76        username map = /etc/samba/smbusers //别名文件路径(注:在全局下golbal)

...

289 [tools]

290         comment = Tools Public

291         path = /usr/src

292         public = no

293         valid users = nick,tom

294         write list = tom

295         read only = yes

296         directory mask = 0755

297         create mask = 0644

298         hosts allow = 192.168.1.19          //设置允许访问的IP

3、客户端测试



4、主要配置文件及位置

/etc/samba/              /etc/samba/smb.conf

配置检查工具testparm


[global]全局设置    [homes]用户目录共享设置     [printers]打印机共享设置

[myshare]自定义的共享目录设置


常见的全局配置选项:

workgroup:工作组名称

server string :服务器描述

security : 默认使用的安全级别

log file :日志文件路径

max log size :日志最大容量(KB)

passwd backend:共享账户的文件类型



常见的共享目录配置项

comment :对此目录的说明文字

path : 共享目录

browseable :是否可见

public :是否所有人可用

writable : 是否可写