CentOS6源码编译搭建Samba

  • A+
所属分类:服务搭建

Samba是一款在类Unix系统上实现SMB协议的免费开源软件,简单说就是在Linux上部署Samba服务端,在Windows的网上邻居就可以访问Linux上的共享数据。Samba4版本的配置方法和早期版本有很大不同,今天给大家分享最新版本Samba 4.8.0的简易配置教程。

 实验环境

实验平台:VMware虚拟机

操作系统:CentOS 6.5 / Windows10

服务端IP:192.168.168.200

客户端IP:192.168.168.201

Samba:4.8.0

 服务端篇

第一步 准备工作

禁用SElinux

  1. [root@Wanghualang ~]# setenforce 0  
  2. [root@Wanghualang ~]# sed -ri 's#^(SELINUX=).*#\1disabled#g' /etc/selinux/config  

禁用防火墙

  1. [root@Wanghualang ~]# service iptables stop  
  2. [root@Wanghualang ~]# service ip6tables stop  
  3. [root@Wanghualang ~]# chkconfig iptables off        
  4. [root@Wanghualang ~]# chkconfig ip6tables off  

安装常用软件

  1. [root@Wanghualang ~]# yum -y install wget vim  

第二步 安装Samba

精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。

  1. [root@Wanghualang-A ~]# yum -y install gcc gcc-c++ python-devel gnutls-devel libacl-devel openldap-devel pam-devel  
  2. [root@Wanghualang-A ~]# cd /usr/local/src/  
  3. [root@Wanghualang-A src]# wget --no-check-certificate https://download.samba.org/pub/samba/stable/samba-4.8.0.tar.gz  
  4. [root@Wanghualang-A src]# tar xzf samba-4.8.0.tar.gz  
  5. [root@Wanghualang-A src]# cd samba-4.8.0  
  6. [root@Wanghualang-A samba-4.8.0]# ./configure --prefix=/usr/local/samba --sysconfdir=/etc/samba  
  7. [root@Wanghualang-A samba-4.8.0]# make  
  8. [root@Wanghualang-A samba-4.8.0]# make install  

第三步 配置Samba

创建配置文件

  1. [root@Wanghualang-A ~]# cp -rf /usr/local/src/samba-4.8.0/examples/smb.conf.default /etc/samba/smb.conf  

配置命令环境变量

  1. [root@Wanghualang-A ~]# echo "export PATH="/usr/local/samba/sbin:$PATH">> /etc/profile  
  2. [root@Wanghualang-A ~]# source /etc/profile  
  3. [root@Wanghualang-A ~]# echo "export PATH="/usr/local/samba/bin:$PATH">> /etc/profile  
  4. [root@Wanghualang-A ~]# source /etc/profile  

创建Samba系统用户

  1. [root@Wanghualang-A ~]# groupadd samba  
  2. [root@Wanghualang-A ~]# useradd -M samba -s /sbin/nologin -g samba  

创建Samba管理用户,密码设置123456。注意,Samba管理用户和Samba系统用户,在创建顺序上两者之间是有前后关系的。必须先创建Samba系统用户,再创建Samba管理用户。

  1. [root@Wanghualang-A ~]# smbpasswd -a samba  

创建数据文件夹

/data/samba提供给游客匿名访问,/data/samba_security提供给专人加密访问。

  1. [root@Wanghualang-A ~]# mkdir -p /data/samba_guest  
  2. [root@Wanghualang-A ~]# mkdir /data/samba_security  
  3. [root@Wanghualang-A ~]# chmod 777 -R /data/samba_guest  
  4. [root@Wanghualang-A ~]# chown -R samba:samba /data/samba_security  

按需配置文件,教程中把Samba工作组从MYGROUP修改为WORKGROUP,设置两个共享文件夹,一个提供给游客匿名访问,可读。另一个提供给专人加密访问,可读写。

  1. [root@Wanghualang-A ~]# sed -i 's/MYGROUP/WORKGROUP/' /etc/samba/smb.conf  
  2. [root@Wanghualang-A ~]# sed -i '/workgroup = WORKGROUP/a\\map to guest = bad user' /etc/samba/smb.conf  
  3. [root@Wanghualang-A ~]# sed -i '/workgroup = WORKGROUP/a\\security = user' /etc/samba/smb.conf  
  4. [root@Wanghualang-A ~]# echo "[Wanghualang_Samba_Guset]" >> /etc/samba/smb.conf  
  5. [root@Wanghualang-A ~]# echo "comment = Wanghualang_Samba_Guset>> /etc/samba/smb.conf  
  6. [root@Wanghualang-A ~]# echo "path = /data/samba_guest" >> /etc/samba/smb.conf  
  7. [root@Wanghualang-A ~]# echo "browseable = yes>> /etc/samba/smb.conf  
  8. [root@Wanghualang-A ~]# echo "guest ok = yes>> /etc/samba/smb.conf  
  9. [root@Wanghualang-A ~]# echo "" >> /etc/samba/smb.conf  
  10. [root@Wanghualang-A ~]# echo "[Wanghualang_Samba_Security]" >> /etc/samba/smb.conf  
  11. [root@Wanghualang-A ~]# echo "comment = Wanghualang_Samba_Security>> /etc/samba/smb.conf  
  12. [root@Wanghualang-A ~]# echo "path = /data/samba_security" >> /etc/samba/smb.conf  
  13. [root@Wanghualang-A ~]# echo "browseable = yes>> /etc/samba/smb.conf  
  14. [root@Wanghualang-A ~]# echo "writable = yes>> /etc/samba/smb.conf  
  15. [root@Wanghualang-A ~]# echo "security = user>> /etc/samba/smb.conf  
  16. [root@Wanghualang-A ~]# echo "valid users = samba>> /etc/samba/smb.conf  

第四步 设置开机启动

创建启动脚本

  1. [root@Wanghualang-A ~]# cp -rf /usr/local/src/samba-4.8.0/packaging/Example/samba.init /etc/init.d/samba  
  2. [root@Wanghualang-A ~]# sed -i '1a # description: Starts and stops the Samba smbd and nmbd daemons' /etc/init.d/samba  
  3. [root@Wanghualang-A ~]# sed -i '1a # chkconfig: - 91 35' /etc/init.d/samba  
  4. [root@Wanghualang-A ~]# chmod 755 /etc/init.d/samba  
  5. [root@Wanghualang-A ~]# chkconfig --add samba  
  6. [root@Wanghualang-A ~]# chkconfig samba on  

启动服务

  1. [root@Wanghualang-A ~]# service samba start  

 客户端篇

主要介绍CentOS、Windows如何访问Samba服务器,先从CentOS开始。

CentOS

第一步 安装Samba客户端

  1. [root@Wanghualang-B ~]# yum -y install samba-client cifs-utils  

第二步 创建挂载点

创建两个目录,对应挂载Samba服务端的访客匿名共享、专人加密共享。

  1. [root@Wanghualang-B ~]# mkdir -p /data/{samba_guest,samba_security}  

第三步 手动挂载

挂载访客匿名共享

  1. [root@Wanghualang-B ~]# mount -t cifs -o guest //192.168.168.200/Wanghualang_Samba_Guset /data/samba_guest   

挂载专人加密共享

  1. [root@Wanghualang-B ~]# mount -t cifs -o username=samba,password=123456 //192.168.168.200/Wanghualang_Samba_Security /data/samba_security  

第四步 自动挂载

实现自动挂载有两种方法,第一种简单粗暴,但安全性较差;第二种需要创建一个密码文件,安全性较高。

第一种

写入/etc/rc.local实现开机自动挂载,配置起来简单粗暴,但Samba登陆密码任何普通用户都可见,存在一定安全隐患。

  1. [root@Wanghualang-B ~]# echo "mount -t cifs -o guest //192.168.168.200/Wanghualang_Samba_Guset /data/samba_guest" >> /etc/rc.local  
  2. [root@Wanghualang-B ~]# echo "mount -t cifs -o username=samba,password=123456 //192.168.168.200/Wanghualang_Samba_Security /data/samba_security" >> /etc/rc.local  

第二种

写入/etc/fstab实现开机自动挂载,配置起来稍微麻烦,需要事先在普通用户无权访问的路径下创建一个Samba密码文件,但安全性较高。

创建Samba密码文件

  1. [root@Wanghualang-B ~]# echo "username=samba>> /root/samba.pass  
  2. [root@Wanghualang-B ~]# echo "password=123456>> /root/samba.pass  

将挂载信息写入/etc/fstab

  1. [root@Wanghualang-B ~]# echo "//192.168.168.200/Wanghualang_Samba_Guset /data/samba_guest cifs defaults,guest 0 0" >> /etc/fstab  
  2. [root@Wanghualang-B ~]# echo "//192.168.168.200/Wanghualang_Samba_Security /data/samba_security cifs defaults,credentials=/root/samba.pass 0 0" >> /etc/fstab  

扩展阅读展开


偶尔需要卸载远程Samba目录的时候,会提示设备正在使用(表面上看起来确实没占用),导致无法正常卸载远程挂载,具体报错如下:

umount: /data/samba_security: device is busy.

可以安装一个非常实用的工具,自动检测并杀死占用该挂载目录的一切进程,再尝试卸载。

  1. [root@Wanghualang-B ~]# yum -y install psmisc  
  2. [root@Wanghualang-B ~]# fuser -m -v -i -k /data/samba_security/  
  3. [root@Wanghualang-B ~]# umount /data/samba_security/  

Windows10

直接打开我的电脑,在地址栏输入:\\192.168.168.200

资源简介 文件名称:Samba 文件版本: 运行平台:
下载地址
  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: