设为首页 收藏本站
查看: 883|回复: 0

[经验分享] CentOS下SAMBA的搭建

[复制链接]

尚未签到

发表于 2018-4-20 12:26:43 | 显示全部楼层 |阅读模式
  一、Samba的由来:
  早起网络中,档案数据传输大多使用FTP这个软件进行传送,FTP的弊端是无法直接修改服务器上面的数据,更新数据,只能靠来回拷贝,时间久了,容易混淆。于是就有了NFS(NetworkFile System),通过共享目录的挂载实现对Server上的档案数据读写更新,不过,NFS仅能让 Unix 机器沟通。在微软 ( Microsoft ) 上面也有类似的档案系统,,CLFS(CommonInternet File System)。 CIFS 只能让 Windows 机器沟通。介于Windows与 Unix-Like 这两个不同的平台相互分享档案数据的档案系统,于是出现了Samba。
  二、Samba简介:
  是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
SAMBA 主要靠两种服务来实现文件和打印机的共享;
smbd:处理文件和打印机共享请求的。端口号,139,445。
nmbd:处理NetBIOS名称服务请求和网络浏览功能的。端口号:137,138。
了解完samba之后,下来就是如何搭建和配置。
  三、搭建前准备
  1、环境介绍
  服务端              CentOS             ip地址
  客户端             win7                            与服务器同局域网的
  2、安装samba软件
[root@localhost~]# rpm -qa | grep samba  查看是否安装了samba软件,没有安装先安装

[root@localhost~]# yum search samba         先查一下有没有相关的软件

[root@localhost~]# yum install samba           找到之后,那就安装吧

  3、相关设定
  安装好如何启动 samba 这个服务呢?并且设定好开机就启动他!
  想要了解如何启动,得要使用 rpm 去找一下软件的启动方式,然后再去处理启动的行为啰!
  先查询一下启动的方式为何:
[root@localhost~]# rpm -ql samba | grep '/etc'

  /etc/logrotate.d/samba
  /etc/openldap/schema
  /etc/openldap/schema/samba.schema
  /etc/pam.d/samba
  /etc/rc.d/init.d/nmb                                              //就是这两位仁兄了
  /etc/rc.d/init.d/smb                                              //就是这两位仁兄了
  /etc/samba/smbusers
[root@localhost~]#  /etc/rc.d/init.d/nmb start

  启动 NMB 服务:
[root@localhost~]#  /etc/rc.d/init.d/smb start

  启动 SMB 服务:
  设置开机自启:
[root@localhost~]# chkconfig nmb on

[root@localhost~]# chkconfig smb on

  启动之后,观察有么有启动相应的port:
[root@localhost~]# neITtat  -tunlp | grep '[sn]mb'


  关闭SElinux:
[root@localhost~]# setenforce 0

  防火墙放行smb,nmb相应的端口:
  编辑防火墙配置文件,放行445,137,138,139端口:
[root@localhost~]# vi /etc/sysconfig/iptables

  -A INPUT-p udp -m udp --dport 445 -j ACCEPT
  -A INPUT-p tcp -m tcp --dport 445 -j ACCEPT
  -A INPUT-p udp -m udp --dport 139 -j ACCEPT
  -A INPUT-p tcp -m tcp --dport 139 -j ACCEPT
  -A INPUT-p udp -m udp --dport 138 -j ACCEPT
  -A INPUT-p tcp -m tcp --dport 138 -j ACCEPT
  -A INPUT-p tcp -m tcp --dport 137 -j ACCEPT
  -A INPUT-p udp -m udp --dport 137 -j ACCEPT
  配置完保存并重启防火墙:
[root@localhost~]# service iptables save

  iptables:将防火墙规则保存到/etc/sysconfig/iptables:[确定]
[root@localhost~]# service iptables restart

  iptables:将链设置为政策ACCEPT:filter [确定]
  iptables:清除防火墙规则:[确定]
  iptables:正在卸载模块:[确定]
  iptables:应用防火墙规则:[确定]
  这样,samba就装好了,下面就是/etc/samba/smb.conf文件的配置了,那么如何找出配置文件呢?因为我们总是需要修改配置文件啊!这样做吧:
  root@localhost~]# rpm -qc samba samba-common
  /etc/logrotate.d/samba
  /etc/pam.d/samba
  /etc/samba/smbusers
  /etc/samba/lmhosIT
  /etc/samba/smb.conf                                           //很明显这个就是配置文件了
  /etc/sysconfig/samba
  一般情况下,公司或企业主要分三种情况,即:
  1、公共匿名类共享目录的配置(即匿名账户访问共同的目录或者文件);
  A、配置文件:
[root@localhost~]# vi /etc/samba/smb.conf

  在文件中添加或者修改相关代码:
  workgroup= MYGROUP                //定义工作组,也就是windows中的工作组概念
  serverstring = Samba Server Version %v  //定义Samba服务器的简要说明
  netbiosname = MYSERVER               //定义windows中显示出来的计算机名称
  log file= /var/log/samba/log.%m             //定义Samba用户的日志文件,%m代表客户端主机//Samba服务器会在指定的目录中为每个登陆主机建立不同的日志文件
  security= share                   //共享级别,用户不需要账号和密码即可访问
[public]                //设置针对的是共享目录个别的设置,只对当前的共享资源起作用

comment = Public Stuff   //对共享目录的说明文件,自己可以定义说明信息
path = /share           //用来指定共享的目录,必选项
public = yes            //所有人可查看,等效于guest ok =yes
  B、建立共享目录:
[root@localhost~]# cd ..

[root@localhost/]# mkdir share

[root@localhost/]# cd share

[root@localhostshare]#  touch samba.txt

[root@localhostshare]#  touch aa.txt

[root@localhostshare]#  ls -ls

  显示结果:
  total 0
  0-rw-r--r--. 1 root root 0 Mar 13 11:02 aa.txt
  0 -rw-r--r--.1 root root 0 Mar 13 11:02 samba.txt
  为/share目录给匿名用户授权为nobody权限:
[root@localhost/]# chown -R nobody:nobody share/

[root@localhost/]# ll /share/

  total 0
  -rw-r--r--.1 nobody nobody 0 Mar 13 11:02 aa.txt
  -rw-r--r--.1 nobody nobody 0 Mar 13 11:02 samba.txt
  C、重启smb服务:
[root@localhost/]# /etc/init.d/smb restart

  Shuttingdown SMB services:                                [  OK  ]
  StartingSMB services:                                                   [  OK  ]
[root@localhost/]# /etc/init.d/nmb restart

  Shuttingdown NMB services:                                [FAILED]
  StartingNMB services:                                     [  OK  ]
  D、测试smb.conf配置是否正确:
[root@localhostshare]# testparm

  显示结果
  Load smbconfig files from /etc/samba/smb.conf
  rlimit_max:increasing rlimit_max (1024) to minimum Windows limit (16384)
  Processingsection "[homes]"
  Processingsection "[printers]"
  Processingsection "[public]"
  Processingsection "[IT]"
  Unknownparameter encountered: "valid user"
  Ignoringunknown parameter "valid user"
  Processingsection "[HR]"
  Processingsection "[FM]"
  Processingsection "[share]"
  Loadedservices file OK.
  Serverrole: ROLE_STANDALONE
  Pressenter to see a dump of your service definitions
[global]

  workgroup = MYGROUP
  server string = Samba Server Version %v
  log file = /var/log/samba/log.%m
  max log size = 50
  client signing = required
  idmap config * : backend = tdb
  cups options = raw
[homes]

  comment = Home Directories
  read only = No
  browseable = No
[printers]

  comment = All Printers
  path = /var/spool/samba
  printable = Yes
  print ok = Yes
  browseable = No
[public]

  comment = Public Stuff
  path = /share
  guest ok = Yes
[IT]

  comment = IT
  path = /IT
  E、访问Samba服务器的共享文件:
  E1:CentOS系统下测试:
[root@localhost~]# smbclient   //*.*.*.*/public

  Enterroot's password:
  Anonymouslogin successful
  Domain=[MYGROUP]OS=[Unix] Server=[Samba 3.6.23-45.el6_9]
  smb:\> ls
  .                                   D        0 Sun Nov 12 03:30:29 2017
  ..                                 DR        0 Sun Nov 12 08:27:23 2017
  aa.txt                                       0  Sun Nov 12 03:30:29 2017
  samba.txt                                    0  Sun Nov 12 03:30:24 2017
  61970 blocks of size 32768.46296 blocks available
  smb:\>
  在此输入 q 命令,退出访问。
  E2:window 7系统下测试,结果如图:

  从图中可以看出,公共目录共享成功。

  2、按照权限对目录进行分组(即除公共共享目录外,各组访问各组的文件或目录,以技术部门IT为例);
  A、添加IT部组和用户,并赋给用户密码:
[root@localhost~]# groupadd IT

[root@localhost~]# useradd -g IT zhangsan

[root@localhost~]# useradd -g IT lisi

  设置lisi的密码:
[root@localhost~]# passwd lisi

  显示结果:
  Changingpassword for user lisi.
  Newpassword:
  在此输入密码:123456,回车:
  BADPASSWORD: it is too short
  BADPASSWORD: is too simple
  Retypenew password:
  再次输入密码:123456,回车:
  passwd:all authentication tokens updated successfully.
  设置zhangsan的密码:
[root@localhost~]# passwd zhangsan

  显示结果:
  Changingpassword for user zhangsan.
  Newpassword:
  在此输入密码:123456,回车:
  BADPASSWORD: it is too short
  BADPASSWORD: is too simple
  Retypenew password:
  再次输入密码:123456,回车:
  passwd:all authentication tokens updated successfully.
  B、在根目录下建立/IT 文件夹:
[root@localhost~]# cd /

[root@localhost/]# mkdir IT

[root@localhost/]# cd IT

[root@sambaIT]# touch IT.txt

[root@sambaIT]# ls -ls

  total 0
  0-rw-r--r-- 1 root root 0 Mar 13 18:17 IT.txt
  C、将建立的两个帐户(lisi、zhangsan)添加到samba的账户中:
[root@localhost~]# smbpasswd -a zhangsan

  New SMBpassword:
  Retypenew SMB password:
  Addeduser zhangsan.
[root@localhost~]# smbpasswd -a lisi

  New SMBpassword:
  Retypenew SMB password:
  Addeduser lisi.
  D、修改主配置文件如下:
[root@localhost ~]# vi /etc/samba/smb.conf

  修改security:
  security= user                         //共享级别,用户不需要账号和密码即可访问
  添加信息:
[IT]

  comment = IT
  path = /IT
valid users = @IT
  E、重新启动服务:
[root@localhost~]# service  smb restart

  关闭 SMB 服务:[确定]
  启动 SMB 服务:[确定]
[root@localhost~]# service  nmb restart

  关闭 NMB 服务:[确定]
  启动 NMB 服务:[确定]
  F、在window 7下测试:
  打开我的电脑,在地址栏中输入\\*.*.*.*服务器地址,弹出用户登陆框:
  输入用户名:lisi,密码:123456,登陆成功后,可以看到相应的目录,包括lisi自己的目录、匿名公共目录、lisi与zhangsan共享的非匿名目录。如下图所示:

  3、共享目录下的不同目录进行分组。
  需求:
  3.1.在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:HR、 FM和Share。在Share下又有以下几个文件夹:HR、FM和Tools。
  3.2.各部门对应的文件夹由各部门自己管理,Tools文件夹由管理员维护。
  3.3. HR管理员账号:hradmin;普通用户账号:hruser。FM管理员账号:fmadmin;普通用户账号:fmuser。
  A、新建用户,并设置SMB账户密码:
  添加用户:
[root@samba ~]# useradd -s /sbin/nologinhradmin

[root@samba ~]# useradd -g hradmin -s/sbin/nologin hruser

[root@samba ~]# useradd -s /sbin/nologinfmadmin

[root@samba ~]# useradd -g hradmin -s /sbin/nologinfmuser

[root@samba ~]# useradd -s /sbin/nologin admin

  设置密码:
[root@samba~]# smbpasswd -a hradmin

  New SMBpassword:
  Retypenew SMB password:
  Addeduser hradmin.
[root@samba~]# smbpasswd -a hruser

  New SMBpassword:
  Retypenew SMB password:
  Addeduser hruser.
[root@samba~]# smbpasswd -a fmadmin

  New SMBpassword:
  Retypenew SMB password:
  Addeduser fmadmin.
[root@samba~]# smbpasswd -a fmuser

  New SMBpassword:
  Retypenew SMB password:
  Addeduser fmuser.
[root@samba~]# smbpasswd -a admin

  New SMBpassword:
  Retypenew SMB password:
  Addeduser admin.
  为了方便记忆,在配置的时候,统一设置为:123456。
  B、新建目录:
[root@samba~]# cd /

[root@samba/]# mkdir company

[root@samba/]# cd company

[root@sambacompany]# mkdir HR FM Share

[root@sambacompany]# cd Share

[root@sambaShare]# mkdir HR FM Tools

  C、更改目录属性:
[root@sambacompany]# chown hradmin.hradmin HR

[root@sambacompany]# chown fmadmin.fmadmin FM

[root@sambacompany]# chown admin.admin Share

[root@sambacompany]# cd Share

[root@sambaShare]# chown hradmin.hradmin HR

[root@sambaShare]# chown fmadmin.fmadmin FM

[root@sambaShare]# chown admin.admin Tools

[root@sambaShare]# chmod 1775 HR FM

  D、修改主配置文件如下:
  security = user
  passdbbackend = tdbsam
[HR]

  comment = This is a directory of HR.
  path = /company/HR/
  public = no
  adminusers = hradmin
  validusers = @hradmin
  writable = yes
  createmask = 0750
  directorymask = 0750
[FM]

  comment = This is a directory of FM.
  path = /company/FM/
  public = no
  adminusers = fmadmin
  validusers = @fmadmin
  writable = yes
  createmask = 0750
  directorymask = 0750
[share]

  comment = This is a share directory.
  path = /company/share/
  public = no
  validusers = admin,@hradmin,@fmadmin
  writable = yes
  createmask = 0755
  directorymask = 0755
  E、重新启动samba服务:
[root@localhost~]# service  smb restart

  关闭 SMB 服务:[确定]
  启动 SMB 服务:[确定]
[root@localhost~]# service  nmb restart

  关闭 NMB 服务:[确定]
  启动 NMB 服务:[确定]
  F、在window 7下测试:
  打开我的电脑,在地址栏中输入\\*.*.*.*服务器地址,弹出用户登陆框:
  在图中输入用户名:hradmin,密码:123456,可以看到相应的共享目录,如下图所示:

  Windows下可以通过cmd命令net use查看连接信息:
  

  通过net use  * /delete 删除连接信息

  测试完毕。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449649-1-1.html 上篇帖子: Linux CentOS 7下 Apache Tomcat 7 安装与配置 下篇帖子: Linux Centos date使用心得
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表