配置之前先了解一下比较重要的一些配置信息,有助于我们得心应手地驾驭服务器:
samba允许单独加载的用户配置文件:
include = /etc/samba/%G.smb.conf
include = /etc/samba/%U.smb.conf
include = /etc/samba/%G.smb.conf
include = /etc/samba/%U.smb.conf
安全性方面:
hosts allow = 192.168.2. EXCEPT 192.168.2.22
interfaces = 192.168.2.126
usrename map = /etc/samba/smbusers 映射虚拟账号,以保证实体账号不外泄,格式如:Linux_user = Samba_user1,Samba_user2,...
smb passwd file = /etc/samba/smbpasswd 为提高安全性,请确认此文件权限:-rw------- 1 root root 103 May 4 19:06
encrypt passwords = yes 以加密的方式通信
利用tcp_wrapper实行访问控制,防止非法访问,在/etc/hosts.allow 和 /etc/hosts.deny加入相应的控制地址,如:hosts.allow里加入smbd:192.168.2.0/24:allow,在hosts.deny里加入smbd:all:deny
hosts allow = 192.168.2. EXCEPT 192.168.2.22
interfaces = 192.168.2.126
usrename map = /etc/samba/smbusers 映射虚拟账号,以保证实体账号不外泄,格式如:Linux_user = Samba_user1,Samba_user2,...
smb passwd file = /etc/samba/smbpasswd 为提高安全性,请确认此文件权限:-rw------- 1 root root 103 May 4 19:06
encrypt passwords = yes 以加密的方式通信
利用tcp_wrapper实行访问控制,防止非法访问,在/etc/hosts.allow 和 /etc/hosts.deny加入相应的控制地址,如:hosts.allow里加入smbd:192.168.2.0/24:allow,在hosts.deny里加入smbd:all:deny
新建文件或文件夹权限方面:
create mask = 0744 设置创建文件时的权限
directory mask = 0755 设置创建目录时的权限
create mask = 0744 设置创建文件时的权限
directory mask = 0755 设置创建目录时的权限
Linux权限分为三个部分:用户所属用户、用户所在组、其它用户三种访问权限,每部分又可以分为读(Read)、写(Write)、执行(eXecute),共占九位数(但ls -l /home/smb 时为什么看到却是10位数的呢?其它是这样的,它的第一位表示文件类型,其它九位就是文件权限,常见的文件类型有:-表示普通文件、d表示目录文件、l表示链接文件、b表示块设备文件等),任何文件都有自己的属主,每个用户靠用户的UID号来区分,用户登录名相同而UID号不同视为不同的用户
现在企业要求每个部分只有一个文件夹,再加一下公共文件目录作为共享用,任何人都可以通过公共目录与其它部门交流文件,本部门的文件只允许本部门操作,同时每个用户有一个私人目录用作保存私有文件
对于用户对自己的目录有绝对权限这个不难,可以成自己的家目录,系统默认的家目录权限是700,安全性达到了要求
再建一个公共目录,权限为1777,1为粘置位,777表示任何人都可以读、写、执行,但前面加上1后,用户只能完全执行自己的文件了,防止用户误操作而导致他人文件丢失的问题,本部门用目录,只要把相当用户加入该组即可,最后一个要求其实就是一个家目录就行了
对于用户对自己的目录有绝对权限这个不难,可以成自己的家目录,系统默认的家目录权限是700,安全性达到了要求
再建一个公共目录,权限为1777,1为粘置位,777表示任何人都可以读、写、执行,但前面加上1后,用户只能完全执行自己的文件了,防止用户误操作而导致他人文件丢失的问题,本部门用目录,只要把相当用户加入该组即可,最后一个要求其实就是一个家目录就行了
实际操作:
先建目录
先建目录
mkdir -p -m 1777/samba/public
mkdir -m 770 /samba/sale
mkdir -m 770 /samba/ad
mkdir -m 770 /samba/pro
mkdir -m 770 /samba/sale
mkdir -m 770 /samba/ad
mkdir -m 770 /samba/pro
建用户组和用户:
groupadd sale
groupadd ad
groupadd pro
useradd -g sale -s /sbin/nologin sale1
useradd -g sale -s /sbin/nologin sale2
useradd -g sale -s /sbin/nologin sale3
useradd -g ad -s /sbin/nologin ad1
useradd -g ad -s /sbin/nologin ad2
useradd -g pro -s /sbin/nologin pro1
useradd -g pro -s /sbin/nologin pro2
useradd -g pro -s /sbin/nologin pro3
groupadd sale
groupadd ad
groupadd pro
useradd -g sale -s /sbin/nologin sale1
useradd -g sale -s /sbin/nologin sale2
useradd -g sale -s /sbin/nologin sale3
useradd -g ad -s /sbin/nologin ad1
useradd -g ad -s /sbin/nologin ad2
useradd -g pro -s /sbin/nologin pro1
useradd -g pro -s /sbin/nologin pro2
useradd -g pro -s /sbin/nologin pro3
修改目录权限(保证用户权限本地权限):
chown sale1:sale /samba/sale
chown ad1:ad /samba/ad
chown pro1:pro /samba/pro
修改配置文件:
vi /etc/samba/smb.conf
[global]
workgroup = workgroup
server string = samba server
interface = 192.168.2.126
hosts allow = 192.168.2. EXCEPT 192.168.2.53
security = user
username map = /etc/samba/smbusers
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = yes
log file=/var/log/samba/%m.log
max log size=50
include = /etc/samba/smb.conf.%U
include = /etc/samba/smb.conf.%G
chown sale1:sale /samba/sale
chown ad1:ad /samba/ad
chown pro1:pro /samba/pro
修改配置文件:
vi /etc/samba/smb.conf
[global]
workgroup = workgroup
server string = samba server
interface = 192.168.2.126
hosts allow = 192.168.2. EXCEPT 192.168.2.53
security = user
username map = /etc/samba/smbusers
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = yes
log file=/var/log/samba/%m.log
max log size=50
include = /etc/samba/smb.conf.%U
include = /etc/samba/smb.conf.%G
[Public]
comment = public directory
path = /samba/public
browseable = yes
writable = yes
valid users = %U
create mask = 1644 保证各个用户自己创建的文件不被他人删除,如果改成1600,那么其它人也没有权限查看
directory mask = 1755
comment = public directory
path = /samba/public
browseable = yes
writable = yes
valid users = %U
create mask = 1644 保证各个用户自己创建的文件不被他人删除,如果改成1600,那么其它人也没有权限查看
directory mask = 1755
[homes]
comment = users directories
browseable = no
writable = yes
valid users = %U
comment = users directories
browseable = no
writable = yes
valid users = %U
主配置文件配置完成,Copy成组、用户的单独配置文件
cp /etc/samba/smb.conf /etc/samba/smbc.conf.sale
cp /etc/samba/smb.conf /etc/samba/smbc.conf.ad
cp /etc/samba/smb.conf /etc/samba/smbc.conf.pro
cp /etc/samba/smb.conf /etc/samba/smbc.conf.sale
cp /etc/samba/smb.conf /etc/samba/smbc.conf.ad
cp /etc/samba/smb.conf /etc/samba/smbc.conf.pro
vi /etc/samba/smb.conf.sale
把config file = /etc/samba/smb.conf.%U 和 config file = /etc/samba/smb.conf.%G 行注释掉,在最后加入如下:
[sale]
comment = sale directory
path = /samba/sale
browseable = yes
write list = @sale
valid users = @sale
create mask = 1640 本配置是基于组的,所以1640权限同组用户只有读权限,而其它用户则无权限
directory mask = 1750
把config file = /etc/samba/smb.conf.%U 和 config file = /etc/samba/smb.conf.%G 行注释掉,在最后加入如下:
[sale]
comment = sale directory
path = /samba/sale
browseable = yes
write list = @sale
valid users = @sale
create mask = 1640 本配置是基于组的,所以1640权限同组用户只有读权限,而其它用户则无权限
directory mask = 1750
另外两个组配置文体操作相同,只是路径、可写用户、有效用户不同
启用tcp_wrapper访问控制
vi /etc/hosts.allow
smbd:192.168.2.0/24:allow
nmbd:192.168.2.0/24:allow
vi /etc/hosts.allow
smbd:192.168.2.0/24:allow
nmbd:192.168.2.0/24:allow
vi /etc/hosts.deny
smbd:all:deny
nmbd:all:deny
smbd:all:deny
nmbd:all:deny
添加samba用户
smbpasswd -a sale1
smbpasswd -a sale2
smbpasswd -a ad1
smbpasswd -a ad2
smbpasswd -a pro1
smbpasswd -a pro2
smbpasswd -a sale1
smbpasswd -a sale2
smbpasswd -a ad1
smbpasswd -a ad2
smbpasswd -a pro1
smbpasswd -a pro2
启用虚拟账号映射
vi /etc/samba/smbusers
sale1 = sale11
sale2 = sale21
ad1 = ad11
ad2 = ad21
pro1 = pro11
pro2 = pro21
vi /etc/samba/smbusers
sale1 = sale11
sale2 = sale21
ad1 = ad11
ad2 = ad21
pro1 = pro11
pro2 = pro21
本文还可以基于用户单独配置文件,实现个性化且符合实际需求的设置
总结:
本配置文件最容易写错的地方有:valid users、encrypt passwords 会忘记后面的s,writable会写成writeable, 按照说明来是应该可以把include这个包含改成config file,但是我设置就是不成功,望有高手帮忙.新手学习过程中难免有很多不懂的地方,待日后见证进步...:)
总结:
本配置文件最容易写错的地方有:valid users、encrypt passwords 会忘记后面的s,writable会写成writeable, 按照说明来是应该可以把include这个包含改成config file,但是我设置就是不成功,望有高手帮忙.新手学习过程中难免有很多不懂的地方,待日后见证进步...:)