一、基于用户名的访问控制实例:

王乾大哥写的比较详细了,我是跟着他的教程学习的,按照他的教程走一边;

要求如下:

1、创建一个公共的交换文件夹,所有人都可以写入删除,但不能删除修改其他人的文件

2、创建一个只有销售部专用的文件夹所有人都可以访问但只有销售部的可以写入;

首先建立两个目录,一个是公共交换目录,一个是销售部的目录,公共交换目录都可以写入,所以权限要777,但是都可以写入的话,就可以删除别人的文件,所以我们要加个冒险位,限制只有root和文件所有者才能删除;

第二个目录,所有人可以访问,但是只有销售部的可以写,只需要在局部设置write list = @sale 就可以了,如果想要更安全的话,还可以设置目录权限是775,让目录属于sale。
第一步:建立两个目录,一个是ownpublic,一个是sale,都建立在/usr/下:
[root@dns usr]# mkdir ownpublic
[root@dns usr]# mkdir sale
[root@dns usr]# chmod 1777 ownpublic/
[root@dns usr]# chmod 775 sale/
第二步:改变xianlin这个用户所属的组并加入sale组
[root@dns usr]# groupadd sale
 [root@dns usr]# id xianlin
uid=504(xianlin) gid=505(xianlin) groups=505(xianlin)
[root@dns usr]# usermod -G sale xianlin


[root@dns usr]# id xianlin
uid=504(xianlin) gid=505(xianlin) groups=505(xianlin),511(sale)
 [root@dns usr]# ll -d sale/
drwxrwxr-x 2 root root 4096 08-13 15:24 sale/
[root@dns usr]# chgrp sale sale/
 [root@dns usr]# ll -d sale/
drwxrwxr-x 2 root sale 4096 08-13 15:24 sale/

第三步:建立一个公共的用户,提供所有用户登陆samba服务器使用 ;
[root@dns samba]# useradd smbpublic
第四步:修改smb.conf配置文件,定义共享的目录
vim /etc/samba/smb.conf
[ownpublic]
comment= public file
path = /usr/ownpublic
public = yes
writable = yes
[sale]
comment = sale's file
path = /usr/sale
public = yes
write list = @sale

 
保存退出配置文件
第五步:建立samba用户并重启smb服务;
建立samba用户的前提是,/etc/passwd文件里要有这个用户名,我们才可以建立成samba用户
我们刚才建立了smbpublic和xianlin两个用户
现在我们把他们建立成samba用户
建立用户的时候要使用 -a 参数,如果改samba用户的密码,就不用加-a参数了
[root@dns sale]# smbpasswd -a smbpublic
New SMB password:
Retype new SMB password:
Added user smbpublic.
You have new mail in /var/spool/mail/root
[root@dns sale]# smbpasswd -a xianlin
New SMB password:
Retype new SMB password:
Added user xianlin.
[root@dns sale]# service smb restart
关闭 SMB 服务:                                            [确定]
关闭 NMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
启动 NMB 服务:                                            [确定]

[root@dns sale]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[yumback]"
Unknown parameter encountered: "printables"
Ignoring unknown parameter "printables"
Processing section "[ownpublic]"
Processing section "[sale]"
Loaded services file OK.
第六步:测试效果
1)、 测试xianlin这个用户在ownpublic、sale目录中都能写;

2)、测试smbpublic用户,在ownpublic目录中可以写入,但是在sale目录中不能做写入操作;

 3)、sampublic用户只能删除自己或修改自己所建立的文件,而不能修改或删除别人的文件提示写保护信息;

 

二、设置samba密码文件

当设置了user的安全等级后,将由本地系统对访问samba共享资源的用户进行认证,要进行认证,需要一个samba的口令文件,该文件由smb passwd file 参数指定,默认为/etc/samba/smbpasswd,初始情况这个文件是不存在的。

注意:

1)、使用smbpasswd命令修改用户口令时,被修改的samba账户的本地系统帐号必须事先存在;

2)、使用带-a 参数的smbpasswd命令添加单个的samba帐号并设置口令,且要求被添加的samba账户的本地系统用户帐号必须已经事先存在。

3)、若被添加的samba账户的本地系统账户不存在,应该使用useradd命令进行添加;

三、使用smbclient

samba提供一个类似ftp客户程序samba客户程序smbclient,用以访问windows共享或Linux提供的samba共享。

格式:

1)、smbclient  -L netbios名或Ip地址       //用于列表显示指定主机提供的共享。

[root@dns ~]# smbclient -L 192.168.0.25
Password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba Server Version 3.0.33-3.14.el5)
        sale            Disk      sale's file
        ownpublic       Disk      public file
        yumback         Disk      yumback
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]

        Server               Comment
        ---------            -------
        DNS                  Samba Server Version 3.0.33-3.14.el5

        Workgroup            Master
        ---------            -------
        MYGROUP              DNS
        WORKGROUP            SERVER

 

2)、smbclient   //netbios名或IP地址/共享名 -U 用户名 //用指定的账户访问指定主机的共享资源;

[root@dns ~]# smbclient //192.168.0.25/yumback -U xianlin
Password:
Domain=[DNS] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> ls
  .                                   D        0  Fri Aug 13 14:36:48 2010
  ..                                  D        0  Fri Aug 13 15:43:02 2010
  ClusterStorage                      D        0  Tue Jun 22 13:22:45 2010
  Server                              D        0  Tue Jun 22 13:21:34 2010
  VT                                  D        0  Tue Jun 22 13:21:52 2010
  Cluster                             D        0  Tue Jun 22 13:22:25 2010

 

加载WIN2003的共享

[root@mysqlndb02 ~]# smbclient //192.168.0.33/sucaipan -U administrator
Password:
Domain=[SERVER] OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]
smb: \> ls
  001-1.合成篇                     D        0  Thu Apr 26 11:54:46 2007
  003-1.合成篇                     D        0  Thu Apr 26 11:34:48 2007
  005-1.合成篇                     D        0  Thu Apr 26 12:07:49 2007
  006-1.合成篇                     D        0  Thu Apr 26 12:00:18 2007
  007-1.合成篇                     D        0  Sat Apr 28 08:45:26 2007
  008-1.合成篇                     D        0  Sat Apr 28 09:15:00 2007
  009-1.合成篇                     D        0  Sat Apr 28 09:00:48 2007