#========================企业环境及需求===========================

samba服务器目录: 
企业数据目录:/companydata 
公共目录:/companydata/share 
销售部目录:/companydata/sales 
技术部:/companydata/tech 
企业员工情况: 
总经理:gm 
销售部:
销售部经理 redking、员工 sky、员工 jane 
技术部:
技术部经理 michael、员工 bill、员工 joy 
搭建samba文件服务器,建立公共共享目录,允许所有人访问,权限为只读,为销售部和技术部分别建立单独的目录,只可以总经理和相应部门员工访问,并且公司员工禁止访问非本部门的共享目录。
 
#===============================实现流程===========================
1.创建用户 
groupadd groupname
adduser -g groupname username 
echo abc/123 | passwd --stdin username 
2.创建共享目录 
mkdir -p /companydata/share /companydata/sales /companydata/tech 
chown redking:sales /companydata/sales 
chown michael:tech /companydata/tech 
chmod -R 775 /companydata 
3.安装samba服务器 
yum install samba 
yum install samba-client 
4.配置samba服务 
vim /etc/samba/smb.conf 
#============================ 
[global] 
#工作组名称
workgroup = WORKGROUP 
#服务器信息
server string = Welcome to visit our company directory! 
#验证方式
security = user
#用户验证信息保存方式 
pssdb backend = tdbsam 
#============================== 
#共享目录share的配置信息
[share] 
#共享目录说明
comment = The share for all employee. 
#共享目录的绝对路径
path = /companydata/share 
#共享目录是否允许匿名访问
public = yes 
#是否只读
readonly = yes 
#共享目录sales的配置信息
[sales] 
comment = The share for sales. 
path = /companydata/sales 
public = no 
#是否能够写入
writable = yes 
#允许访问该目录的用户(组)
valid users = @sales @gm 
#拒绝访问该目录的用户(组)
invalid users = @tech 
#共享目录tech的配置信息
[tech] 
comment = The share for sales. 
path = /companydata/tech 
public = no 
writable = yes 
valid users = @tech @gm 
invalid users = @sales 
5.为samba添加用户 
(echo abc/123;echo abc/123) | smbpasswd -s -a username
6.关闭防火墙 
iptables -F 
service iptables save 
7.重启samba服务 
/etc/init.d/smb restart 
8.测试 共享
smbclient -L localhost -U username 
smbclient //localhost/sharedir -U username
9.问题:
     共享目录sales和tech下用户新建的文件,其他用户只默认只具有读取的权限,但是不能修改和删除,那么,如何使部门经理和GM组具有删除文件的权限?是否需要启用acl权限???
#==========实验了acl权限配合SAMBA,能够实现上面需求,实现步骤如下。
#开启磁盘acl功能
mount -o remount,acl /
#为用户组(总经理)gm添加acl权限rwx, 注意执行权限,无执行权限时连接samba服务器会提示tree connect failed host deny错误
setfacl -R -m g:gm:rwx /companydata/
#为用户(部门经理)添加acl权限rwx
setfacl -R -m u:redking:rwx /companydata/sales
#重启samba服务
/etc/init.d/smb restart