在搭建samba服务器的过程中需要修改smb.conf这个配置文件,但是这个文件涉及的配置信息很多,查看网上的例子后发现每个人的习惯也不一样。所以我想知道这个文件中哪些信息是必须要写的?
用途:用于linux和windows之间的文件共享
工作原理:
smb进程:控制发布共享目录与权限,负责文件传输 TCP 139 445
nmb进程:用于名称解析 UDP 137 138
思路:
1、关闭防火墙和selinux
2、配置yum源
3、软件三步曲(安装|确认|查看软件列表)
4、了解配置文件
5、根据需求通过修改配置文件来完成服务搭建
6、启动服务,开机自启动
7、测试验证
步骤:
关闭防火墙和selinux
[root@vm1 ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
[root@vm1 ~]# chkconfig iptables off
[root@vm1 ~]# getenforce
Enforcing
[root@vm1 ~]# setenforce 0
[root@vm1 ~]# getenforce
Permissive
[root@vm1 ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
2、配置yum源
# cat /etc/yum.repos.d/local.repo
[local]
name=LOCAL
baseurl=file:///mnt/6.5iso
enabled=1
gpgcheck=01)
3、安装软件
yum -y install samba
1)安装
# rpm -aq|grep samba
samba-winbind-clients-3.6.9-164.el6.x86_64
samba-client-3.6.9-164.el6.x86_64
samba4-libs-4.0.0-58.el6.rc4.x86_64
samba-common-3.6.9-164.el6.x86_64
samba-3.6.9-164.el6.x86_64
samba-winbind-3.6.9-164.el6.x86_64
2)确认
# rpm -ql samba
/etc/logrotate.d/samba 日志轮转
/etc/pam.d/samba 认证模块
/etc/rc.d/init.d/nmb 启动脚本
/etc/rc.d/init.d/smb
/etc/samba/smbusers 存放smb用户别名
/usr/sbin/nmbd 二进制命令
/usr/sbin/smbd
3)查看软件列表
# rpm -ql samba-common
/etc/samba/smb.conf 主配置文件
/usr/bin/pdbedit 查看smb数据库用户
/usr/bin/smbpasswd 设置smb用户密码
/usr/bin/testparm 语法检测命令
4、了解配置文件
# cat /etc/samba/smb.conf |grep -v ^#|grep -v '^;'|grep [a-z]
[global]全局选项
workgroup = MYGROUP 工作组
server string = Samba Server Version %v smba服务版本描述
# logs split per machine
log file = /var/log/samba/log.%m 日志存放位置及格式
# max 50KB per log file, then rotate
max log size = 50 日志的最大大小是50kb
security = user 认证方式user表示基于用户名密码认证;share表示匿名用户
passdb backend = tdbsam 密码格式
# the login script name depends on the machine name
# the login script name depends on the unix user used
# disables profiles support by specifing an empty path
load printers = yes 加载打印机
cups options = raw 打印机选项
#obtain list of printers automatically on SystemV
[homes]局部选项;默认共享本地用户的家目录
comment = Home Directories 描述
browseable = no 是否隐藏共享名称,no表示隐藏;yes表示不隐藏
writable = yes 是否可写
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no 等于 public = no 是否允许匿名用户访问,no不允许;yes允许
writable = no
printable = yes
5、不做任何修改,默认情况
6、启动服务
[root@node1 Desktop]# service nmb start
Starting NMB services: [ OK ]
[root@node1 Desktop]# service smb start
Starting SMB services: [ OK ]
7、测试验证
192.168.5.2
认证模式:security = user
默认情况:security = user
匿名用户查看:
# smbclient -L 192.168.5.1
Enter root's password: 直接回车,匿名用户登录
Anonymous login successful
# smbclient -L 192.168.5.1/homes -U redhat 用户名密码查看
smbpasswd
-a:添加一个用户
-d:关闭
-e:开启
-x:删除
smbpasswd -a redhat
密码:
确认密码:
访问使用:
# smbclient //192.168.5.1/homes
Enter root's password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
# smbclient //192.168.5.1/homes -U redhat
Enter redhat's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> ls
. D 0 Thu Apr 14 15:12:59 2016
.. D 0 Mon Mar 28 16:52:34 2016
001 D 0 Thu Apr 14 11:08:45 2016
.bash_history H 257 Thu Apr 14 11:13:51 2016
.mozilla DH 0 Mon Mar 28 16:40:48 2016
.bash_profile H 176 Tue Jul 9 21:24:50 2013
.bash_logout H 18 Tue Jul 9 21:24:50 2013
aaa D 0 Thu Apr 14 15:14:03 2016
.gnome2 DH 0 Wed Jul 14 23:55:40 2010
file1 0 Thu Apr 14 15:11:45 2016
.bashrc H 124 Tue Jul 9 21:24:50 2013
35292 blocks of size 524288. 26418 blocks available
smb: \>
修改配置文件,给匿名用户共享一个目录
1)mkdir /samba/share
2)修改配置文件
vim /etc/samba/smb.conf
[anon_share]
commnet = public ok
path = /samba/share
public = yes
browseable = yes
writable = yes
重启服务:service smb restart
3)测试验证:
# smbclient //192.168.5.1/anon_share
Enter root's password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> ls
. D 0 Thu Apr 14 15:25:51 2016
.. D 0 Thu Apr 14 15:25:51 2016
认证模式:security = share
总结:
1、当security = user时,本地用户可以查看和访问共享出来的目录(homes),匿名用户能不能访问看是否有共享选项给匿名用户开放。
2、当security = share时,只有匿名用户可以访问,本地用户不能查看也不能访问
demo1:server端共享一个目录,任何用户都可以访问
1、创建一个共享目录
mkdir /samba
2、修改配置文件
vim /etc/samba/smb.conf
security = user
[share]
commnet = xxxxx
path = /samba
public = yes
browseable = yes
writable = yes
重启服务:service smb restart
3、测试验证
手动挂载
# mount -t cifs -o user=redhat,password='redhat' //192.168.5.1/share /u03
开机自动挂载
一键式触发挂载
#########################################################################
实例:
需求
公司:redhat
1、财务部门 /samba/RHCA_cw cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限。
2、市场部门 /samba/RHCA_sc 市场部门员工可读可写,公司员工可以查询资料,boss02对其有管理权限。
3、HR部门 /samba/RHCA_rs rs01HR总监可读写,HR部门员工可以对财务部查询,vip用户可以查询
4、休息区 /samba/RHCA_pub 自己管理自己的文件
步骤:
1.创建相应目录
mkdir /samba/RHCA_{cw,sc,rs,pub} -p
2、创建用户组
groupadd redhat
groupadd cw
groupadd sc
groupadd rs
useradd cw01 -g cw -G redhat
useradd sc01 -g sc -G redhat
useradd rs01 -g rs -G redhat
useradd boss01 -g redhat -G cw
useradd boss02 -g redhat -G sc
useradd vip
3.修改相应权限
chmod 770 /samba -R
chown root.redhat /samba
chown root.cw /samba/RHCA_cw
chown root.sc /samba/RHCA_sc
chown root.rs /samba/RHCA_rs
chmod 1777 /samba/RHCA_pub
4、发布共享目录
vim /etc/samba/smb.conf
workgroup = redhat
server string = www.redhat.edu
security = user
[财务部门]
comment = cw01财务总监可以读写,财务部门员工只读,boss01对其部门管理,HR部门员工可以对财务部查询
path = /samba/RHCA_cw
public = no
valid users = @cw , boss01 , @rs 只允许cw组,rs组和boss01访问
read list = @cw , boss01 , @rs
write list = cw01 , boss01
[人事部门]
comment = HR总监可以读写,vip用户可以查询
public = no
path = /samba/RHCA_rs
valid users = @rs , vip
read list = @rs , vip
write list = rs01
[市场部门]
comment = 市场部门员工可以读写,公司员工可以查询资源,boss02对其部门管理
public = no
path = /samba/RHCA_sc
valid users = @redhat
read list = @redhat
write list = @sc,boss02
[休息区域]
comment = 自己的文件自己管理
public = yes
path = /samba/RHCA_pub
writable = yes
host allow = 192.168.5.
5、检测语法
testparm
6、配置smb用户密码
smbpasswd -a cw01
....
# pdbedit -L 查看smb数据库里的用户
redhat:500:redhat
7、启动服务,测试验证
cw01没权限
setfacl -m u:cw01:rx /samba/
其他acl策略省略,自己测试
访问控制:
host deny = 192.168.0. 拒绝某个网段
host allow = 192.168.5.1 允许某个IP
host deny = all 拒绝所有
host allow = all EXCEPT 192.168.5.254 允许所有,拒绝某个IP
别名:username map = /etc/samba/smbusers
vip = zhangsan
#########################################################################
建议清空环境 再次操作<恢复快照>
综合练习 <lvm+acl+smb(user)>
配置samba要求如下
1)工作组名为RHCE
2)认证类型为user
3) 使用lvm 建立 /dev/mapper/rhce-smb 20G 固定挂载到 /rhce
4)1.财务部门(/rhce/cw),只有财务总监(cw01)可以修改文件,财务成员(cw02)审核文件,boss01 汇总公司财务
2.人事部门(/rhce/rs),人事部门可以修改文件,公司所有员工都可以查看文件,boss02 也可以修改文件
3.市场部门(/rhce/sc),只有市场总监可以修改文件,市场成员可以查询,boss03 也可以修改文件
4.vip 可以访问rs部门,sc部门
6.在公共目录(/rhce/pub)自己文件自己管理
5) 拒绝用户在192.168.1.0/24访问该共享目录
6) 定义vip的别名为赵二
7) smb密码自行定义