Linux之samba服务器
首先介绍一下samba的由来,Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
原本SMB协议是windows和windows(网上邻居)之间分享资源的一种协议。Linux找到微软,也想把该协议用在window和Linux的文件共享上,可微软没有同意,于是Linux通过逆向方法实现了SMB协议,为了与SMB区分并将其取名为SAMBA协议。
下面开始samba服务器的安装及使用吧
注意:systemctl stop firewalld.service中的.service可以省略写成systemctl stop firewalld
方法一: systemctl stop firewalld.service (暂时关闭防火墙服务,系统重启后防火墙还会打开)
systemctl stop firewalld.service
方法二: systemctl disable firewalld.service(通过关闭防火墙服务,开机自动启动,来做到永久关闭防火墙服务)
systemctl disable firewalld.service
查看防火墙状态
systemctl status firewalld.service
systemctl start firewalld
最近遇到Mysql数据启动报错的问题,于是发现是因为SELinux没有关闭,那么这篇文章就简单的记录SElinux是如何让关闭的。
前言
百度百科:SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统。对于可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。
大部分使用 SELinux 的人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian或 Centos。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
方法一:# cat /etc/selinux/config
如果SELinux status为Enforcing那么就是开启状态(如下图)
方式二:#getenforce 0
如果显示Enforcing那么就是开启状态(如下图)
1.临时关闭 (不需要重启服务器)
输入命令:setenforce 0
setenforce 0
然后再输入命令:getenforce 0进行查看,此时变成了Permissive,则说明SElinux关闭成功。
getenforce 0
2.永久关闭 (需要重启服务器)
步骤一: 输入命令:vim /etc/selinux/config
vim /etc/selinux/config
步骤二:编辑selinux=disabled
步骤三:重启服务器
在终端输入yum -y install samba进行安装
yum -y install samba
一般来说,安装好samba后就会自动running
systemctl start smb.service
关闭samba服务器
systemctl stop smb.service
samba的配置文件在 /etc/samba下的smb.conf中,不同的Linux版本配置文件位置可能不同,可以通过网上查找得到。
需要配置的是共享哪个目录,以及这个目录的访问权限
首先进入配置文件所在位置
cd /etc/samba
输入ls查看目录内容
ls
lmhosts smb.conf smb.conf.example
可以看到有三个,分别是lmhosts、smb.conf和smb.conf.example,其中smb.conf就是我们需要修改的配置文件,为了避免修改错误,所以最好备份一下
cp smb.conf bak_smb.conf
编辑配置文件
如果使用的是vi编辑器,可以在命令行模式下按G直接将光标定位到最后一行,然后按i编辑即可)在smb.conf最后添加如下代码(注意:是writable不是writeable,没有e,然后前面是退格键Tab
)
vim smb.conf
解释一下各行的意思:
[linux_share]:在配置文件中,如果想要加入一个新功能,就用方括号,然后里面写上名称,这里将共享文件功能命名为linux_share
comment:commen表示标题(随便写)
path:表示共享目录,这里我是设置在home的linux用户下的lab文件夹 下(如果没有这个文件夹一定要去创建哦,否则最后没法操作)
writable = yes:表示可写
browseable = yes:表示可浏览
samba有自己的一套用户和密码,命令添加samba用户
smbpasswd -a linux
//-a表示add,linux是虚拟机中已经有的用户名
//如果没有linux用户可以创建
mkdir -p /home/linux/lab
systemctl restart smb.service
下面在windows下登录samba,在开始菜单中进入运行,输入\+ip
linux端的ip可以通过终端输入ifconfig得到
点击确定后出现
可以发现该网络驱动的名字就是第三步配置中方括号里的名字,信息提示是comment的内容此时双击进去就可以看到共享目录下的文件了
在linux端里也可以看到在windows端创建的example.c,说明我们实现了文件共享,在linux端创建也可以在windows端看到
为了更好的体验共享文件的功能,这里也可以像Windows一下,将共享文件目录作为一个盘符,加在Windows下。
操作如下:
在此电脑中找到映射网络驱动器,点击“映射网络驱动器”
然后按照以下输入,点击完成
随便选择一个盘符(我事先选择了Z盘),后面加上linux_share(你自己在第三步设置的功能名称),点击确定,会发现多了一个Z盘
双击新添加的盘,即可像操作Windows下的文件一样操作Linux下的文件了。
以上就是今天要讲的内容,本文仅仅简单介绍了Samba服务器的搭建,下一章再见。