Samba共享权限分配
https://www.cnblogs.com/liuquan/p/5644760.html
案例推荐:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html
本文不详细介绍全部参数,只介绍完成需求的一些参数。
需求:
1,账号建立:产研部门所有人员,产品、前端、后端、测试;
2,目录建立:各二级部门分别建立以部门名称为文件夹的目录;
3,初步权限管理:各部门成员对本部门目录有读写权限,对其他部门目录有读权限;
4,建立共享目录,所有人有增删权限
5,部门目录结构自行定义
一、Samba的安装
yum install samba.x86_64 samba-client.x86_64 samba-common.x86_64 samba-swat.x86_64
二、 账户创建,用户组创建,相关目录创建,目录的属主,属组更改
a.创建每个部门的用户组
1
2
3
4
|
[[email protected] ~]# groupadd ceshi [[email protected] ~]# groupadd chanpin [[email protected] ~]# groupadd PHP [[email protected] ~]# groupadd Android |
b.先创建系统用户,并加入自己的用户组
[[email protected] ~]# useradd -g chanpin -s /sbin/nologin chanpinadmin
[[email protected] ~]# useradd -g chanpin -s /sbin/nologin chanpinuser
[[email protected] ~]# useradd -g ceshi -s /sbin/nologin ceshiadmin
[[email protected] ~]# useradd -g ceshi -s /sbin/nologin ceshiuser
[[email protected] ~]# useradd -g PHP -s /sbin/nologin phpadmin
[[email protected] ~]# useradd -g PHP -s /sbin/nologin phpuser
[[email protected] ~]# useradd -g Android -s /sbin/nologin androidadmin
[[email protected] ~]# useradd -g Android -s /sbin/nologin androiduser
c.创建samba用户并给每个用户设置密码,要在系统创建完后才可以创建samba用户 (smbpasswd -a $username命令是用于创建用户和更改密码的命令)
1
2
3
4
5
|
[[email protected] ~]# smbpasswd -a chanpiadmin New SMB password: Retype new SMB password:
Added user chanpinuser. [[email protected] ~]# |
>依次创建每个团队的用户
1
2
3
4
5
6
7
|
[[email protected] ~]# smbpasswd -a chanpinuser [[email protected] ~]# smbpasswd -a phpadmin [[email protected] ~]# smbpasswd -a phpuser [[email protected] ~]# smbpasswd -a androidadmin [[email protected] ~]# smbpasswd -a androiduser [[email protected] ~]# smbpasswd -a ceshiadmin [[email protected] ~]# smbpasswd -a ceshiuser |
d.创建目录,更改属主
1
2
3
4
|
[[email protected] Samba]# mkdir -p /letv/fet/Samba/ ceshi chanpin Android PHP<br>[[email protected] Samba]# chown androidadmin.Android Android/ [[email protected] Samba]# chown phpadmin.PHP PHP/ [[email protected] Samba]# chown chanpinadmin.chanpin chanpin [[email protected] Samba]# chown ceshiadmin.ceshi ceshi/ |
1
2
3
4
5
6
|
[[email protected] Samba]# ll total 36 drwxr-xr-x 5 androidadmin Android 4096 Jul 6 11:10 Android drwxr-xr-x 3 ceshiadmin ceshi 4096 Jul 5 17:59 ceshi drwxr-xr-x 5 chanpinadmin chanpin 4096 Jul 5 17:47 chanpin drwxr-xr-x 4 phpadmin PHP 4096 Jul 5 18:27 PHP |
三、更改配置文件,实现权限的分配
[[email protected] fet]# cp /etc/samba/smb.conf /etc/samba/bck_smb.conf
[[email protected] fet]# cd /etc/samba/
[[email protected] samba]# vi smb.conf
里面的全局配置可以保持默认就行,如果自己对性能或者其他的要求可以参考更全面的文章,我这边没有需求没有全局的更改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#======================= Global Settings ===================================== [global] # ----------------------- Network Related Options ------------------------- # # workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH # # server string is the equivalent of the NT Description field # # netbios name can be used to specify a server name not tied to the hostname workgroup = WORKGROUP
server string = David Samba Server Version %v
netbios name = DavidSamba
# --------------------------- Logging Options ----------------------------- # # Log File let you specify where to put logs and how to split them up. log file = / var /log/samba/log.%m
max log size = 50
# ----------------------- Standalone Server Options ------------------------ # # Scurity can be set to user, share(deprecated) or server(deprecated) security = user
passdb backend = tdbsam
#============================ Share Definitions ============================== #[homes] # comment = Home Directories # browseable = no # writable = yes ; valid users = %S ; valid users = MYDOMAIN\%S [共享目录] comment = this is share
path = /letv/fet/Samba/share
writable = yes
admin users = @Android,@PHP,@chanpin,@ceshi
valid users = @Android,@PHP,@chanpin,@ceshi
create mask = 0777
directory mask = 0777
[PHP研发部门] comment = This is php samba
path = /letv/fet/Samba/PHP
writable = yes
admin users = phpadmin,@PHP
valid users = @PHP,@Android,@chanpin,@ceshi
create mask = 0774
directory mask = 0775
[Android研发部门] comment = This is Android samba
path = /letv/fet/Samba/Android
writable = yes
admin users = androidadmin,@Android
valid users = @PHP,@Android,@chanpin,@ceshi
create mask = 0774
directory mask = 0775
[产品部门] comment = This is chanpin samba
path = /letv/fet/Samba/chanpin
writable = yes
admin users = chanpinadmin,@chanpin
valid users = @PHP,@Android,@chanpin,@ceshi
create mask = 0774
directory mask = 0775
[测试部门] comment = This is ceshi samba
path = /letv/fet/Samba/ceshi
writable = yes
admin users = ceshiadmin,@ceshi
valid users = @PHP,@Android,@chanpin,@ceshi
create mask = 0774
directory mask = 0775
directory mask = 0775
|
comment 对这个共享目录的介绍,可以自定义
path 共享目录路径
writable 是否允许写入,yes/no
admin users 共享目录的管理员用户直接填写,多个用户或者组需要用","号分隔开,@开头的表示是分组,”admin users = ceshiadmin,@ceshi“表示管理员包含 ceshiadmin用户和ceshi组里面的成员.
valid users 允许访问的用户
create mask = 0774 Samba用户在所在目录创建文件的权限 0774权限算是比较大的了,因为我这边需要给所有人可以查看打开,所以是-rwxrw-r--
directory mask = 0775 Samba用户在所在目录创建文件夹的权限 0775 因为我这边需要给所有人可以查看打开,文件夹需要有执行的权限,所以是drwxrwxr-x
然后就测试
\\192.169.1.100
本部门文件可以随意操作,其他部门如下:
切换账户测试的时候,Windows会有samba缓存自动登录原来的账户,需要清理一下
清除方法:
右击计算机--管理--服务和应用程序--服务--Workstation 重启服务清除缓存。
频繁切换账户可能会出现短时间内无法访问的情况,会提示网络问题导致无法访问,此时可以换台PC测试或者多等待一下。
(使用 SMB 协议创建并维护客户端网络与远程服务器之间的连接。如果此服务已停止,这些连接将无法使用。如果此服务已禁用,任何明确依赖它的服务将无法启动。)
ok完成~