原文地址:http://www.5ilinux.com/samba.html 转载请注明出处 Samba服务器调试 fedora预装的samba已经是samba-3.0.0-15,功能已经非常强大了,今天我们调试的重点不是samba3.0的新功能,我们还是先来实现他的基本功能,文件共享服务,至于域控制器功能我会在以后的调试手记中阐述。 我们今天要实现的环境是,假如公司有财务,技术,领导3个部门,我们分别为3个部门建立3个用户组为caiwu,network,lingdao; 三个部门里各有2个用户,我们建用户分别为caiwu01,caiwu02,network01,network02,lingdao01,lingdao02 然后我们分别就公司的具体情况建立相应的目录及访问权限,通过以下的例子,希望大家能在平时的工作中灵活的应用samba的安全权限来设置你们的samba文件服务器。 1。首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。 2。建立一个caiwu的文件夹,希望caiwu组和lingdao组的人能看到,network02也可以访问,但只有caiwu01有写的权限。 3。建立一个lindao的目录,只有领导组的人可以访问并读写,还有network02也可以访问,但外人看不到那个目录 4。建议一个文件交换目录exchange,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。 5。建议一个公共的只读文件夹public,所有人只读这个文件夹的内容。 好,我们先来前期的工作 #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 #home段满足第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目录 大家有什么问题建议请尽管提:) 作者:张微波 2003年11月12日于北京【发表回复】【查看CU论坛原帖】【关闭】 零二年的夏天 回复于:2003-11-12 22:55:52Good! LZG8056 回复于:2003-11-12 22:59:09俺收了! bjchenxu 回复于:2003-11-13 09:23:06很高兴看到张微波成功地使用了samba,这里我提出3个问题来讨论一下: 1. 关于[home]的命名,一般是叫[homes],不知缺少这个s有没有问题? 2. [home]段中的%S,我记得应该是服务名,这里怎么能作为用户名?你去掉这一行看看,是否没有问题? 3. 你比较喜欢用777的属性设置,按照linux的常见方法,目录一般用755,文件用644,是否要重新考虑一下? zhangweibo 回复于:2003-11-13 10:45:411.应该是homes,是笔误,bjchenxu 眼力真好,我这就修改 2.其实valid users = %S是多余的,我自己就没写,不过写一下安全一点!你说的是服务器是[global]的定义,在共享的定义是不一样的:) redhat默认的homes定义就是这样。按照默认的来就行 [homes] comment = Home Directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 3。其实这是为了方便,我想不少初学者可能会被unix的安全权限和samba的安全权限搞晕,还不如直接用samba的安全权限来限制清楚一点。因为有些目录比如public,就不能设置成755,644 否则是不能写的,特别是遇到某些目录要求某个组要写更加麻烦,因为unix的安全权限是大于samba的安全权限。建议在调试完samba的安全后再细微调整unix的安全权限! 谢谢bjchenxu的提问! sxsfxx 回复于:2003-11-13 15:00:48好! 补充一点: 如果只共乡自己的home目录的话,在默认的.conf(安装时文档目录下也有)下只用一个命令就行了, 如要共乡root的用户目录,这样安全性更好一些。 smbadduser root:root(组名:用户) 再输入密码就行了,在windwos下//linux_ip/root就可以用root张乎访问了。