实验环境 :
192.168.1.0局域网  工作组:WORKGROUP
RedHat 5(192.168.1.105,作为samba服务器)
CentOS4.6 (192.168.1.106)
windowsXP(192.168.1.195)

实验内容:
1、只允许195主机和106主机能访问samba共享文件夹。

2、建立两个samba用户,user01和user02。使user01只对共享文件夹/var/samba/user01dir具备上传、下载的权限。而user02只对共享文件夹/var/samba/user02dir具备上传、下载的权限.对于共享文件夹/var/samba内的其他文件只有下载的权限。

安装samba:
在RedHat 5 上装上两个包:
 samba-3.0.25b-0.el5.4  samba-common-3.0.25b-0.el5.4
安装命令 : rpm -ivh ...........

修改配置文件:

vi /etc/samba/smb.conf

        workgroup = WORKGROUP //找到工作组,修改工作组。
        hosts allow = 127. 192.168.1.106 192.168.1.195
       
        [shared]              //共享名
        comment = Public Stuff
        path = /var/samba     //共享路径
        public = yes          //公开
        writable = no         //不赋予写的权限
        printable = no        // 不能打印
        write list = user01,user02     //user01,user02有写的权限

修改完保存


[root@www ~]# testparm       //测试配置文件时候格式正确
[root@www ~]# mkdir -p /var/samba/user01dir
[root@www ~]# mkdir /var/samba/user02dir
[root@www ~]# chown user01 /var/samba/user01
[root@www ~]# chown user02 /var/samba/user02
[root@www ~]# chmod 755 /var/samba   //更改文件夹权限
[root@www ~]# chmod 755 /var/samba/user01dir
[root@www ~]# chmod 755 /var/samba/user02dir
[root@www ~]# cp /etc/passwd  /var/samba
[root@www ~]# service smb restart
[root@www ~]# chkconfig smb on

新建samba用户
[root@www ~]# useradd user01
[root@www ~]# smbpasswd -a user01
New SMB password:        //输入密码 注:要符合密码复杂性 我设置的密码是1qaz@WSX
Retype new SMB password:    //再次输入
Added user user01.      
同理建立user02用户。
 

测试:

1、lunux系统作为客户端:
   安装包 : rpm -ivh  samba-client-3.0.25b-0.el5.4.i386.rpm

   连接
   [root@www ~]# smbclient //192.168.1.105/shared  -U user01%1qaz@WSX
   此命令格式是 smbclient //smb服务器IP/共享名  -U 用户名%密码       
   注:输入后如果出现以下错误:
  session setup failed: NT_STATUS_LOGON_FAILURE
  该错误表示用户有误, 可能是用户不存在, 也有可能是密码错误, 或者用户只是在samba和系统的用户中的一个地方存在, 总之是用户和密码有问题。

2、windowsXP 作为客户端

   打开网上邻居-->>查看计算机工作组后你可以看到一台Samba Server 打开输入账号密码即   可
    注: 工作组必须设置相同,否则无法完成共享!


3、用户可以通过samba登陆到自己的home目录 ,同时对自己的home目录具有rwx的权限。
   Linux系统作为客户端登陆到自己的home目录的登录方式:
  
[root@www ~]# smbclient //192.168.1.105/user01  -U user01
   
  XP系统作为客户端账号密码登陆后就可以看到自己的home目录

五、补充一个小知识:
但使用windows 客户端实验访问linux samba服务器,因为会尝试使用多个用户来获取不同权限的尝试,但是windows浏览器连接默认用户第一次连接就默认下次连接的时候还是该用户,这样给要尝试多用户访问SAMBA服务器带来了不少麻烦,虽然可以注销或重启来来断开连接,但是非常不方便。这里介绍一种非常方便的方法,只需一条命令就可以了。
net use * /delete /y
     ok.就是上面这条命令,又要重启或注销机器?还不赶紧试试啊。
     灵丹妙药乎?


清除windows访问局域网时保留的缓存用户名和密码
以前用A身份访问工作组里一台服务器(保存了用户名和密码),现在想用身份B登录那台服务器。怎么才能使A身份实效呢?我用 net use * /d /y和net session \\計算機名 /delete提示操作成功,但是仍然可以连接,不起作用.
回答:
根据我的研究,您可以通过以下方法清空计算机上存储的用户名和密码,具体的操作步骤如下:
1. 单击“开始”,单击“运行”,键入“control userpasswords2”或 输入“control keymgr.dll”,然后按 Enter。
2. 单击“高级”选项卡,然后单击“管理密码”。
3. 移除所有存储的密码。
“存储用户名和密码”的行为
根据我的测试,无论是移除所有存储的密码,还是使用net use * /d删除所有的已有连接,都需要重新启动计算机才会在访问该共享文件夹的时候,重新出现输入用户名和密码的提示。如果您不希望重启计算机的话,可以重启“workstation”服务来进行测试。


Vista如何连接到Samba ?
 现在许多公司都采用Linux+Samba服务做为文件服务器,部分员工发现在换装Vista系统后无法查看到服务器上Samba共享的文件目录,这是因为Samba Server 只支持NTLM 认证,而Vista却强制使用NTLMv2认证,这时我们就需要通过一些设置来解决这一问题。
  解决方法如下:
  首先,单击[开始]---[运行] 输入 “secpol.msc”打开管理工具,展开“本地策略(Local Policies)”。
  然后,单击“安全选项(Security Options)”。 双击“网络安全:LAN Manager 身份验证级别(Network Security: LAN Manager authentication level)”
  最后,单击列表中:发送LM和NTLMv2,如果已协商,则使用NTLMv2协议(LM and NTLM – use NTLMV2 session security if negotiated) 。
  通过以上设置,在对方不支持NTLMv2认证的时候,系统会自动采用NTLM认证方式进行验证。如果Vista系统不能同其它服务正常连接的时,也不妨试试这个方法。