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

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

[复制链接]

尚未签到

发表于 2017-11-13 13:27:35 | 显示全部楼层 |阅读模式
一、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软件
[iyunv@localhost~]# rpm -qa | grep samba  查看是否安装了samba软件,没有安装先安装
[iyunv@localhost~]# yum search samba         先查一下有没有相关的软件
[iyunv@localhost~]# yum install samba           找到之后,那就安装吧
3、相关设定
安装好如何启动 samba 这个服务呢?并且设定好开机就启动他!
想要了解如何启动,得要使用 rpm 去找一下软件的启动方式,然后再去处理启动的行为啰!
先查询一下启动的方式为何:
[iyunv@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
[iyunv@localhost~]#  /etc/rc.d/init.d/nmb start
启动 NMB 服务:
[iyunv@localhost~]#  /etc/rc.d/init.d/smb start
启动 SMB 服务:
设置开机自启:
[iyunv@localhost~]# chkconfig nmb on
[iyunv@localhost~]# chkconfig smb on
启动之后,观察有么有启动相应的port:
[iyunv@localhost~]# neITtat  -tunlp | grep '[sn]mb'
c90b0e995612925336a9bc9e2be05973.png-wh_500x0-wm_3-wmp_4-s_3414492656.png
关闭SElinux:
[iyunv@localhost~]# setenforce 0
防火墙放行smb,nmb相应的端口:
编辑防火墙配置文件,放行445,137,138,139端口:
[iyunv@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
配置完保存并重启防火墙:
[iyunv@localhost~]# service iptables save
iptables:将防火墙规则保存到/etc/sysconfig/iptables:[确定]
[iyunv@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、配置文件:
[iyunv@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、建立共享目录:
[iyunv@localhost~]# cd ..
[iyunv@localhost/]# mkdir share
[iyunv@localhost/]# cd share
[iyunv@localhostshare]#  touch samba.txt
[iyunv@localhostshare]#  touch aa.txt                  
[iyunv@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权限:
[iyunv@localhost/]# chown -R nobody:nobody share/
[iyunv@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服务:
[iyunv@localhost/]# /etc/init.d/smb restart
Shuttingdown SMB services:                                [  OK  ]
StartingSMB services:                                                   [  OK  ]
[iyunv@localhost/]# /etc/init.d/nmb restart
Shuttingdown NMB services:                                [FAILED]
StartingNMB services:                                     [  OK  ]
D、测试smb.conf配置是否正确:
[iyunv@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系统下测试:               
[iyunv@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系统下测试,结果如图:
4a8ddb825c8dc915620c4c22f44832f0.png-wh_500x0-wm_3-wmp_4-s_1742231150.png               


从图中可以看出,公共目录共享成功。
214a49b05effab73ed8e7688d78ee69d.png-wh_500x0-wm_3-wmp_4-s_2020912769.png

2、按照权限对目录进行分组(即除公共共享目录外,各组访问各组的文件或目录,以技术部门IT为例);
A、添加IT部组和用户,并赋给用户密码:
[iyunv@localhost~]# groupadd IT
[iyunv@localhost~]# useradd -g IT zhangsan
[iyunv@localhost~]# useradd -g IT lisi
设置lisi的密码:
[iyunv@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的密码:
[iyunv@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 文件夹:
[iyunv@localhost~]# cd /
[iyunv@localhost/]# mkdir IT
[iyunv@localhost/]# cd IT
[iyunv@sambaIT]# touch IT.txt
[iyunv@sambaIT]# ls -ls
total 0
0-rw-r--r-- 1 root root 0 Mar 13 18:17 IT.txt
C、将建立的两个帐户(lisi、zhangsan)添加到samba的账户中:
[iyunv@localhost~]# smbpasswd -a zhangsan
New SMBpassword:
Retypenew SMB password:
Addeduser zhangsan.
[iyunv@localhost~]# smbpasswd -a lisi
New SMBpassword:
Retypenew SMB password:
Addeduser lisi.
D、修改主配置文件如下:
[iyunv@localhost ~]# vi /etc/samba/smb.conf
修改security:
security= user                         //共享级别,用户不需要账号和密码即可访问
添加信息:
[IT]
        comment = IT
        path = /IT
valid users = @IT
E、重新启动服务:
[iyunv@localhost~]# service  smb restart
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
[iyunv@localhost~]# service  nmb restart
关闭 NMB 服务:[确定]
启动 NMB 服务:[确定]
F、在window 7下测试:
打开我的电脑,在地址栏中输入\\*.*.*.*服务器地址,弹出用户登陆框:
输入用户名:lisi,密码:123456,登陆成功后,可以看到相应的目录,包括lisi自己的目录、匿名公共目录、lisi与zhangsan共享的非匿名目录。如下图所示:
bc2a83c0f141d00419850c0bf28be8ab.png-wh_500x0-wm_3-wmp_4-s_4068518008.png

3、共享目录下的不同目录进行分组。
需求:
3.1.在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:HR、 FM和Share。在Share下又有以下几个文件夹:HR、FM和Tools。
3.2.各部门对应的文件夹由各部门自己管理,Tools文件夹由管理员维护。
3.3. HR管理员账号:hradmin;普通用户账号:hruser。FM管理员账号:fmadmin;普通用户账号:fmuser。
A、新建用户,并设置SMB账户密码:
添加用户:
[iyunv@samba ~]# useradd -s /sbin/nologinhradmin
[iyunv@samba ~]# useradd -g hradmin -s/sbin/nologin hruser
[iyunv@samba ~]# useradd -s /sbin/nologinfmadmin
[iyunv@samba ~]# useradd -g hradmin -s /sbin/nologinfmuser
[iyunv@samba ~]# useradd -s /sbin/nologin admin
设置密码:
[iyunv@samba~]# smbpasswd -a hradmin
New SMBpassword:
Retypenew SMB password:
Addeduser hradmin.
[iyunv@samba~]# smbpasswd -a hruser
New SMBpassword:
Retypenew SMB password:
Addeduser hruser.
[iyunv@samba~]# smbpasswd -a fmadmin
New SMBpassword:
Retypenew SMB password:
Addeduser fmadmin.
[iyunv@samba~]# smbpasswd -a fmuser
New SMBpassword:
Retypenew SMB password:
Addeduser fmuser.
[iyunv@samba~]# smbpasswd -a admin
New SMBpassword:
Retypenew SMB password:
Addeduser admin.
为了方便记忆,在配置的时候,统一设置为:123456。
B、新建目录:
[iyunv@samba~]# cd /
[iyunv@samba/]# mkdir company
[iyunv@samba/]# cd company
[iyunv@sambacompany]# mkdir HR FM Share
[iyunv@sambacompany]# cd Share
[iyunv@sambaShare]# mkdir HR FM Tools
C、更改目录属性:
[iyunv@sambacompany]# chown hradmin.hradmin HR
[iyunv@sambacompany]# chown fmadmin.fmadmin FM
[iyunv@sambacompany]# chown admin.admin Share
[iyunv@sambacompany]# cd Share
[iyunv@sambaShare]# chown hradmin.hradmin HR
[iyunv@sambaShare]# chown fmadmin.fmadmin FM
[iyunv@sambaShare]# chown admin.admin Tools
[iyunv@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服务:
[iyunv@localhost~]# service  smb restart
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
[iyunv@localhost~]# service  nmb restart
关闭 NMB 服务:[确定]
启动 NMB 服务:[确定]
F、在window 7下测试:
打开我的电脑,在地址栏中输入\\*.*.*.*服务器地址,弹出用户登陆框:
在图中输入用户名:hradmin,密码:123456,可以看到相应的共享目录,如下图所示:
2a46b6a80c2b7df07873d482e3306a8c.png-wh_500x0-wm_3-wmp_4-s_2119501777.png

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

通过net use  * /delete 删除连接信息
333e151a0897ba94c47a65cfa87a9e62.png-wh_500x0-wm_3-wmp_4-s_3601146858.png

测试完毕。


运维网声明 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-406998-1-1.html 上篇帖子: 自动化之安装操作系统——PXE 下篇帖子: centos7u3下安装sublime及调试sidebar字体
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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