企业NAS部署(一)之基础配置

自渡
2018-11-22 / 0 评论 / 2,204 阅读

最近在帮企业部署内网网络存储(nas)系统,方便不同部门之间通过内网共享文件。Linux下的samba软件,能够很好地代替windows共享来完成该项目。
m28cxal5.png
服务器信息
操作系统:CentOS 6.10
硬盘:128G SSD+1TB HDD
安装相关软件
使用yum安装samba

yum -y install samba

在配置NAS之前关闭SELinux以及在iptables放行相关端口,或者关闭iptables,由于在内网,无需防火墙,因此我直接清空了自带的iptables规则

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config
iptables -F
service iptables save

Samba安装完毕后,默认的配置文件在/etc/samba/smb.conf,所有的共享参数均在此配置。
首先是编辑/etc/samba/smb.conf,通过nano或者vi和WinSCP皆可,先编辑[global]全局选项

[global]
workgroup = WORKGROUP   #工作组名,win下默认是WORKGROUP
server string = Samba Server For Linux #自定义字符串,用于描述服务器
log file = /var/log/samba/log.%m #生成日志
max log size = 50 #指定日志大小
security = user #安全级别,这里表示所有用户均需要通过验证才可访问
passdb backend = smbpasswd #密码认证方式,有多种选项,这里选择smbpasswd方便后期员工自助修改密码
smb passwd file = /etc/samba/smbpasswd #这里指定了账户密码的存放文件路径
max connections = 0 #0表示无限制连接,也可手动指定一个数值来限制连接数
load printers = no #加载打印机共享,这里不设定打印机

全局选项配置完毕后,就可以开始配置共享目录了,首先创建一个目录,专门用于存放NAS文件

mkdir -p /media/samba

编辑配置文件smb.conf中的文件夹选项,另起一行,示例如下

#客户端看到的文件夹名称
[部门1]
#该共享文件夹在服务器中对应的真实目录
path = /media/samba/部门1
#对该共享具有读取权限的用户
valid users = user1 user2 user3...
#用户创建的文件和目录的默认权限
create mask  = 0755
directory mask = 0755
#在首页是否隐藏,yes为不隐藏,no为隐藏
browseable = yes
#对该共享具有写入权限的用户
write list = user1 user2 user3...
#对该共享具有完全控制权限的用户
admin users = user1 user2 user3...
#是否允许访客访问,yes为允许,no为禁止
guest ok = no

[部门2]
path = /media/samba/部门2
valid users = user1 user2 user3...
create mask  = 0755
directory mask = 0755
browseable = yes
write list = user1 user2 user3...
admin users = user1 user2 user3...
guest ok = no

#可根据实际需求,在配置内继续添加其他共享
...

创建真实目录

mkdir -p /media/samba/部门1
mkdir -p /media/samba/部门2

因为samba用户认证是使用本地用户名+smb独立密码的形式来认证,即用户名必须在系统内存在,所以我创建了一个名为smbuser的组,然后将公司员工的账号批量导入。在设置NAS密码时,使用的是smbpasswd,smbpasswd是一个交互式命令,其使用方法如下:

smbpasswd -a 用户名
New password:(输入密码,密码不会显示在此处)

因为这是一个交互式命令,所以给批量设置默认密码带来了许多麻烦,而幸好有expect命令来解决这个交互的问题。批量导入方法如下:
安装expect

yum -y install expect

写一个批量导入脚本

#!/usr/bin/expect
spawn smbpasswd -a 用户1
expect "*password:"
send "用户1的密码\r"
expect "*password:"
send "用户1的密码\r"
interact

spawn smbpasswd -a 用户2
expect "*password:"
send "用户2的密码\r"
expect "*password:"
send "用户2的密码\r"
interact
...

然后赋予脚本执行权限并且执行就行了

chmod +x 脚本名
./脚本名

配置基本已经完成了,接下去便是启动smb服务器

service smb start

将smb加入开机启动项

chkconfig smb on
0

评论 (0)

取消