1。首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。



2。建立一个caiwu的文件夹,希望caiwu组和lingdao组的人能看到,network02也可以访问,但只有caiwu01有写的权限。



3。建立一个lindao的目录,只有领导组的人可以访问并读写,还有network02也可以访问,但外人看不到那个目录



4。建立一个文件交换目录exchange,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。



5。建立一个公共的只读文件夹public,所有人只读这个文件夹的内容。



好,我们先来前期的工作



建立3个组:


#groupadd caiwu 


 #groupadd network 


 #groupadd lingdao




添加用户并加入相关的组当中:


#useradd caiwu01 -g caiwu 


 #useradd caiwu02 -g caiwu 


 #useradd network01 -g network 


 #useradd network02 -g network 


 #useradd lingdao01 -g lingdao 


 #useradd lingdao02 -g lingdao



然后我们使用smbpasswd -a caiwu01的命令为6个帐户分别添加到samba用户中



#mkdir /home/samba 


 #mkdir /home/samba/caiwu 


 #mkdir /home/samba/lingdao 


 #mkdir /home/samba/exchange 


 #mkdir /home/samba/public



我们为了避免麻烦可以在这里把上面所有的文件夹的权限都设置成777,我们通过samba灵活的权限管理来设置上面的5点要求。



以下是我的smb.conf的配置文件



[global] 


 workgroup = bmit 


 #我的网络工作组 


 server string = Frank's Samba File Server 


 #我的服务器名描述 


 security = user 


 #使用用户验证机制 


 encrypt passwords = yes 

 smb passwd file = /etc/samba/smbpasswd 

 #使用加密密码机制,在win95和winnt使用的是明文



其他的基本上可以按照默认的来。



[homes] 

 comment = Home Directories 

 browseable = no 

 writable = yes 

 valid users = %S 

 create mode = 0664 

 directory mode = 0775 


 #homes段满足第1条件 


 [caiwu] 

 comment = caiwu 

 path = /home/samba/caiwu 

 public = no 

 valid users = @caiwu,@lingdao,network02 

 write list = caiwu01 

 printable = no 


 #caiwu段满足我们的第2要求 


 [lingdao] 

 comment = lingdao 

 path = /home/samba/lingdao 

 public = no 

 browseable = no 

 valid users = @lingdao,network02 

 printable = no 


 #lingdao段能满足我们的第3要求 


 [exchage] 

 comment = Exchange File Directory 

 path = /home/samba/exchange 

 public = yes 

 writable = yes



#exchange段基本能满足我们的第4要求,但不能满足每个人不能删除别人的文件这个条件,即使里设置了mask也是没用,其实这个条件只要unix设置一个粘着位就行



chmod -R 1777 /home/samba/exchange



注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求



[public] 

 comment = Read Only Public 

 path = /home/samba/public 

 public = yes 

 read only = yes



#这个public段能满足我们的第5要求。



到此为止我们的设置已经能实现我们的共享文件要求,记得重启服务哦



#/etc/rc.d/init.d/smb restart



如果大家没有winodws,不妨先用samba的cilent端命令来测试一下



命令的用法我在这里只举几个例子,具体的大家去试验



smbclient -L 服务器ip -N



guest帐户查询你的服务器的samba共享情况,你可以检验一下是否lingdao目录时候能被guest帐户看到,应该是看不到的,当然你也可以以某个用户的名义查看



smbclient -L 服务器ip -U caiwu01



系统会提示密码,只要输入smb密码就行。



smbclient //服务器ip/caiwu -U caiwu01



#以caiwu01用户的名义登录caiwu目录



smbmount //服务器ip/caiwu /mnt/caiwu -o username=caiwu01



#把服务器的财务目录映射到本地的/mnt/caiwu目录。

测试

smbclient -L //localhost/share 或者 
  smbclient-L \\127.0.0.1 -Umyname //这时输入的密码就是你刚才设置的samba密码

使用

1、windows用户
在我的电脑地址栏里输入\\192.168.1.1访问;也可windows+R输入\\192.168.1.1;

登录后可以右击映射到本地驱动器。

net use * /delete
2、linux

(1)使用smbclient

#smbclient//192.168.1.1/Normal -U user%passwd
(2)挂载到某个目录使用
#mkdir/mnt/share
#mount -o username=youruser,password=passwd //192.168.1.1/Normal  /mnt/share

设置开机挂载将如下命令写入/etc/fstab

//192.168.1.1/share  /mnt/ml45  cifs  defaults,auto,username=youruser,password=passwd 0 0

然后#mount -a