如何部署基于用户验证的Samba服务?

Samba

1 samba的简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

2 samba的安装

2.1 yum源安装

yum -y install samba samba-client

2.2 配置部分

2.2.1 添加认证组

groupadd gp1

2.2.2 添加认证用户

useradd user1 -s /sbin/nologin
useradd user2 -s /sbin/nologin -G gp1
useradd user3 -s /sbin/nologin -G gp1
smbpasswd -a user1
smbpasswd -a user2
smbpasswd -a user3

注:
– useradd命令的-s参数是禁止用户的shell登录权限
– useradd命令的-G参数是将用户添加到附加组gp1
– smbpasswd命令-a参数指定变更samba密码的用户名

2.2.3 建立配置文件夹

mkdir /data/files

另外,你可以通过以下方式授予用户或组的权限,

setfacl -m u:user1:rwx /data/files/
setfacl -m g:gp1:rwx /data/files/

2.2.4 设置smb的文件夹权限

vim /etc/samba/smb.conf

文件末尾加入如下配置,

[files]
path  = /data/files
valid users = user1, @gp1
write list = user1, @gp1

以上分别通过用户与组两种方式授予三个用户同等的读写权限,修改后的配置文件如下,

[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v

        log file = /var/log/samba/log.%m
        max log size = 50

        security = user
        passdb backend = tdbsam

        load printers = yes
        cups options = raw

[files]
        path  = /data/files
        valid users = user1, @gp1
        write list = user1, @gp1

2.2.5 启动服务和配置服务自动启动

/etc/init.d/smb start
chkconfig smb on

2.2.6 关闭SELinux

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.2.7 配置防火墙

vim /etc/sysconfig/iptables

加入如下配置:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

配置完成后,我们需要通过重启服务使配置生效,

/etc/init.d/iptables restart
没有评论

发表评论

Bash
如何使用Bash上传Samba?

1 前言 一个问题,一篇文章,一出故事。 笔者有一台samba服务器并设置共享目录,共享目录允许授权 …

Samba
如何配置samba客户端挂载?

1 前言 企业也环境中常常使用到Linux作为客户端挂载samba的共享(有时候共享由Windows …

Load balancing
4
如何实现samba4的负载均衡群集?

1 架构简介 1.1 负载均衡器层 此层提供负载均衡的调度服务,把负载分派到各个文件系统服务器。 1 …