有一个公司有五个人(当然小了点,可能几百人)一个老板 (ceo),
两个(lin dong)属于技术部(tech),两个(jiao ming)属于工程部(engi)。
员工在公司内可以流动办公,但不管在哪办公都要把自己的文件保存在samba服务器上。
同一部门有共享文件夹,不同部门不能访问(说到这是不是很象vlan技术?)。
其他人只能访问自己的home目录
所有人不能使用服务器的shell
现建组:
groupadd tech
groupadd engi
往组里加用户:
useradd -g tech -s /bin/false lin
~~~~(同样的方法)
-g tech 是你加lin这个用户到tech这个组,-s /bin/false是指它没有shell
因为登陆要有密码,所以要加密:
smbpasswd -a lin
输入密码
但这只是五个人的公司,如果五百人是不是挨个输呢?
我们可以编写脚本
for user in lin dong
do
useradd -g tech -s /bin/false $user
smbpasswd -a $user
done
(for user 是制定一个变量,in 后面跟一个列表 有lin  和dong 这两个用户
 do循环
useradd -g tech是加到这个组里 -s /bin/false是加的用户没有shell
$user是调用上边的变量
下面的同理
输入密码
在加老板:
useradd ceo
smbpasswd -a ceo
然后我们为他们建立自己的目录:
mkdir /home/tech /home engi
现在这两个目录是root的, 我没必须把这两个目录给这两个组:
chgrp tech /home/tech
chgrp engi /home/engi
因为是共享目录,组内任何人都可以写,必须改权限
chmod 770 /home/tech
chmod 770 /home/engi
为了能够让目录永远的共享下去权限不变可以加、:
chmod g+s /home/tech
chmod g+s /home/engi
下一步就改samba配置文件了
vi /etc/samba/smb.conf
[tech]
   path = /home/tech      (路径)
   comment = tech          (注释)
   public = no                   (不共享,有密码才能进)
   valid users = @tech         (访问权限为tech组)
   write list = @tech              (写权限为tech组)
   create mask = 0770              (创建文件权限问770,但普通文件没有执行权限)
   directory mask = 0770              (创建目录权限)
同样
[engi]
   path = /home/engi
   comment = engi
   public = no
   valid users = @engi
   write list = @engi
   create mask = 0770
   directory mask = 0770
最后可以用smbclient -L localhost -U lin%lin测试(假设lin的密码是lin)