大家都知道Windows操作系统上可以设置共享目录,可以让局域网的其他用户通过网上邻居访问这个共享目录,那在Linux上怎么设置共享目录呢?
Samba是在Linux系统上实现SMB协议的一个服务软件,SMB可以实现在局域网上共享文件和打印机,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。客户机通过该SMB协议可以访问服务器上的共享文件系统、打印机及其他资源
下面介绍在CentOS上搭建共享文件服务Samba
一、首先yum方式安装samba服务
[root@YuanFan-CentOS ~]# yum install samba samba-client
[root@Storage ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@Storage ~]# cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
cat命令读入主配置文件,再在grep命令后面添加-v参数(反向选择),分别去掉所有以井号(#)和分号(;)开头的注释信息行,对于剩余的空白行可以使用^$参数来表示并进行反选过滤,最后把过滤后的可用参数信息通过重定向符覆盖写入到原始文件名称中。执行过滤后剩下的Samba服务程序的参数并不复杂,为了更方便查阅参数的功能
三、下面先创建不需要密码的访问共享目录
1、先创建共享目录的真实目录
[root@Storage ~]# mkdir /datadisk
[root@Storage ~]# chmod 777 /datadisk/
2、下面开始vi编辑smb.conf文件
[root@Storage ~]# vi /etc/samba/smb.conf
[global]
workgroup =WORKGROUP工作组的名称为WORKGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 500
security =share#share:分享的数据不需要密码
passdb backend = tdbsam
cups options = raw
[data_share]
path = /datadisk/
read only = No
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
security = share, user, domain:三选一,这三个设定值分别代表
share:分享的数据不需要密码,大家均可使用 (没有安全性);
user :使用 Samba服务器本身的密码数据库,密码数据库与底下的 passdb backend 有关;
domain:使用外部服务器的密码
3、接下来设备samba的两个服务smb和nmb服务开机启动,并手动启动这两个服务
[root@Storage ~]# chkconfig smb on
[root@Storage ~]# chkconfig nmb on
[root@Storage ~]# service smb start
Starting SMB services: [ OK ]
[root@Storage ~]# service nmb start
Starting NMB services: [ OK ]
[root@Storage ~]#
需要注意的两个地方:
1)如果CentOS服务器有开启SELINUX的话,建议关闭掉
vi /etc/selinux/config
将SELINUX=enforcing 改成SELINUX=disabled,然后reboot重启生效
重启后用getenforce命令确认SELINUX状态为Disabled
2)防火墙配置,若有开启防火墙,需要加入一下规则
[root@Storage ~]# iptables -I INPUT 5 -p tcp -m state --state NEW -m multiport --dports 139,445 -j ACCEPT
[root@Storage ~]# iptables -I INPUT 5 -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
4、Windows主机网上邻居或资源管理器访问\\192.168.31.111验证
验证可以正常访问共享目录,读写权限都OK
四、下面介绍需要密码访问共享目录的部署方式
1、创建用户组及目录
[root@Storage ~]# groupadd security#创建一个security用户组
[root@Storage ~]# mkdir /datadisk_security/#创建data_security目录
[root@Storage ~]# chgrp security /datadisk_security/
[root@Storage ~]# chmod 770 /datadisk_security/
2、接下来添加系统用户secadmin(测试账号) 用户组权限改为security用户组
[root@Storage ~]# useradd secadmin
[root@Storage ~]# usermod -G security secadmin
[root@Storage ~]#
3、secadmin系统账号测试加入到smb用户里,并设置smb密码
[root@Storage ~]# smbpasswd -a secadmin
New SMB password:
Retype new SMB password:
Added user secadmin.
[root@Storage ~]#
4、编辑smb.conf
[root@Storage ~]# vi /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 500
security =user
passdb backend = tdbsam
cups options = raw
[data_security]
path = /datadisk_security/
read only = No
writable = yes
create mode = 0770
directory mode = 0770
guest ok = no
valid user = @security
5、手动重启smb和nmb服务
6、Windows主机网上邻居或资源管理器访问\\192.168.31.111验证
提示输入账号密码
验证OK,可以正常访问
五、另外Linux上挂载Linux Samba共享目录的命令如下
mount -t cifs //192.168.31.111/data_security /mnt/cifs -o username=secadmin,password=admin123
Samba共享服务的简单部署就介绍到这里
领取专属 10元无门槛券
私享最新 技术干货