如何部署基于用户验证的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/%m.log
        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
没有评论

发表回复

Samba
如何设置Samba的日志级别?

1 前言 一个问题,一篇文章,一出故事。 笔者遇到生产中的客户端连接服务器需要开启调试日志,于是整理 …

Samba
如何让Samba兼容XP系统?

1 前言 一个问题,一篇文章,一出故事。 笔者遇到生产的XP无法连接高版本samba服务事宜,于是整 …

Samba
如何无交互静默创建samba密码?

1 前言 一个问题,一篇文章,一出故事。 笔者需要无交互地设置samba的密码,于是整理此文。 2 …