天天看点

学习笔记 五: SAMBA

一 SAMBA

   server message block, linux和windows之间文件共享的网络协议,用于部门文件和打印机共享。

它由2个服务组成:SMB,NMB

二 SAMBA安装配置

1.安装  

yum install samba*

2.安装配置防火墙

UDP 137 138

tcp 139 445

3.配置自动启动

systemctl eanble smb.service

systemctl enable nmb.service

重启smb服务

systemctl restart nmb.service

systemctl restart smb.service

4.客户端访问

\\samba server #服务器别名

5.参数解析

配置文件目录  /etc/samba

测试语法:testparm -v

全局参数:[global]

共享参数:[共享名称]

具体参数解析,可以参考smb_example.conf文件。

列举几个比较常用的共享属性:

browseable = yes/no  #是否可浏览

writable = yes/no #是否可写入

available= yes #是否可以使用

admin users = share #共享的管理员

valid users = user  #允许访问的用户或群组 @group

write list= user,group #允许写的用户或组

public = yes/no  # 是否允许public访问

guest ok = yes /no #是否允许 guest访问

三 SAMBA案例

题目:有3个用户zhangsanA,lisiB,wangwuC ,其中zhangsanA和listB 属于群组IT部门,wangwuC

属于sales部门。

在共享服务器samba下面,有文件夹IT-file和sale-file,public-file,CEO-file

请按照下面要求设置权限:

配置samba服务器,让用户群组listB可以读写文件IT-file,不能查看sale-file,可以读public-file

配置samba权限,让用户wangwuC可以读写文件sale-file,不能查看IT-file,可以读public-file

3. 所有人都无法看到CEO-file文件夹

四 SAMBA高可用

4.1 CTDB-samba-glusterfs

ctdb

samba

samba-common

samba-winbind-clients

samba 4.2  ctdb

对于大于4.2版本的,需要编译参数:

--with-cluster-support

--with-shared-modules=idmap_rid,idmap_tdb2,idmap_ad

关键配置点:smb.conf

netbios name = something *

clustering = yes

idmap config * : backend = autorid

idmap config * : range = 100000-19999999

4.3 gfs2

mkfs.gfs2 -j3 -p lock_dlm -t csmb:gfs2 /dev/csmd_vg/cmsb_lv

-j  节点数

-p  指定锁协议

-t  指定群集文件名字

4.4 配置ctdb

/etc/sysconfig/ctdb

CTDB_NODES=/etc/ctdb/nodes   #指定文件再群集节点列表的位置,真是IP

CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses   #指定通过IP访问群集文件列表的IP地址

CTDB_RECOVERY_LOCK="/mnt/ctdb/.ctdb.lock" #共享锁,必须所有节点都可以访问到

CTDB_MANAGES_SAMBA=yes

CTDB_MANAGES_WINBIND=yes

nodes

10.1.1.1

10.1.2.1

public_addreses

192.168.1.201/0 eth1

[global]

guest ok =yes

netbios name = csmb-server

[csmb]

comment = clustered samba

public = yes

path = /mnt/gfs2/share

writeable = yes

ea support = yes

修改脚本

vi /etc/ctdb/events.d/11.route

#!/bin/sh

. /etc/ctdb/functions

loadconfig ctdb

cmd="$1"

shift

case $cmd in

takeip)

# we ignore errors from this, as the route might be up already when we're grabbing

# a 2nd IP on this interface

/sbin/ip route add $CTDB_PUBLIC_NETWORK via $CTDB_PUBLIC_GATEWAY dev $1 2> /dev/null

;;

esac

exit 0

4.5  net conf同步配置

net conf

4.6 开始服务

systemctl start ctdb.service

systemctl status ctdb.service

4.7 挂载

mount -t cifs //csmb-server/csmb /mnt/sambashare -o user=testmonkey

smbclient //csmb-server/csmb

本文转自 woshiwei201 51CTO博客,原文链接:http://blog.51cto.com/chenwei/1841962

继续阅读