一、安装samba

yum install samba -y
systemctl start smb
systemctl enable smb

二、案例

1. 有2个部门PM和TS。

2. 各部门的文件夹只允许本部门员工有权访问;各部门之间交流性质的文件放到公用文件夹Share中。

3. 每个部门都有一个管理本部门文件夹的管理员账号和一个只能新建和查看文件的普通用户权限的账号。

4. 公用文件夹Sare中分为存放工具的Tools文件夹和存放各部门共享文件的文件夹。

5. 对于各部门自己的文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。不是本部门用户不能访问本部门文件夹。

6. 对于公用文件夹Share中的各部门共享文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。本部门用户(包括管理员和普通用户)在访问其他部门共享文件夹时,只能查看不能修改删除新建。对于存放工具的Tools文件夹,只有管理员有权限,其他用户只能访问。

三、规划

1. 在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:PM、TS和Share。在Share下又有以下几个文件夹:PM、TS和Tools。

2. 各部门对应的文件夹由各部门自己管理,Tools文件夹由管理员维护。

3. PM管理员账号:pmadmin;普通用户账号:pmuser。

   TS管理员账号:tsadmin;普通用户账号:tsuser。

   Tools管理员账号:admin。

四、建立文件夹设置权限

1、新建用户

useradd -s /sbin/nologin pmadmin
useradd -g pmadmin -s /sbin/nologin pmuser
useradd -s /sbin/nologin tsadmin
useradd -g tsadmin -s /sbin/nologin tsuser
useradd -s /sbin/nologin admin

2、设置密码

smbpasswd -a pmadmin
smbpasswd -a pmuser
smbpasswd -a tsadmin
smbpasswd -a tsuser
smbpasswd -a admin

3、创建目录

cd /
mkdir Company
cd Company/
mkdir PM TS Share
cd Share/
mkdir PM TS Tools

4、授权

cd /Company/
chown pmadmin.pmadmin PM
chown tsadmin.tsadmin TS
chown admin.admin Share
cd /Company/Share/
chown pmadmin.pmadmin PM && chown tsadmin.tsadmin TS && chown admin.admin Tools
cd /Company/
chmod 1770 PM TS
chmod -R 0755 Share/
cd Share/
chmod 1775 PM TS

五、编辑samba配置文件

vim /etc/samba/smb.conf

#======================= Global Settings =====================================
[global]
# ----------------------- Network Related Options -------------------------
        workgroup = WORKGROUP
        netbios name = samba
        server string = samaba server %v
# --------------------------- Logging Options -----------------------------
        log file = /var/log/samba/log.%m
        max log size = 50
# ----------------------- Standalone Server Options -----------------------
        security = user
        passdb backend = tdbsam
        #map to guest = Bad User
#============================ Share Definitions ==============================
[PM]
     comment = This is a directory of PM.
     path = /Company/PM/
     public = no
     admin users = pmadmin
     valid users = @pmadmin
     writable = yes
     create mask = 0750
     directory mask = 0750
[TS]
     comment = This is a directory of TS.
     path = /Company/TS/
     public = no
     admin users = tsadmin
     valid users = @tsadmin
     writable = yes
     create mask = 0750
     directory mask = 0750
[Share]
     comment = This is a share directory.
     path = /Company/Share/
     public = no
     valid users = admin,@pmadmin,@tsadmin
     writable = yes
     create mask = 0755
     directory mask = 0755

#测试配置是否正确

testparm
service smb restart

六、windows访问samba很慢

将/etc/hostname写到/etc/hosts里面

七、windows下切换用户

“net use”命令查看现有的连接,然后执行“net use \\Samba服务器IP地址或者netbios名称\ipc$  /del”,删除Samba服务器已经建立的连接。或者执行“net use * /del”将现在所有的连接全部删除。