CentOS下SAMBA的搭建

1、Samba的由来:linux

早起网络中,档案数据传输大多使用FTP这个软件进行传送,FTP的弊端是没法直接修改服务器上面的数据,更新数据,只能靠来回拷贝,时间久了,容易混淆。因而就有了NFSNetworkFile System),经过共享目录的挂载实现Server上的档案数据读写更新,不过,NFS仅能让 Unix 机器沟通。在微软 ( Microsoft ) 上面也有相似的档案系统,,CLFSCommonInternet File System)。 CIFS 只能让 Windows 机器沟通。介于Windows Unix-Like 这两个不一样的平台相互分享档案数据的档案系统,因而出现了Sambaios

2、Samba简介:windows

是在LinuxUNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMBServer Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通讯协议,它为局域网内的不一样计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机经过该协议能够访问服务器上的共享文件系统、打印机及其余资源。经过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。服务器

SAMBA 主要靠两种服务来实现文件和打印机的共享;网络

smbd:处理文件和打印机共享请求的。端口号,139,445tcp

nmbd:处理NetBIOS名称服务请求和网络浏览功能的。端口号:137,138ide

了解完samba以后,下来就是如何搭建和配置。测试

3、搭建前准备ui

1、环境介绍spa

服务端              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'

c90b0e995612925336a9bc9e2be05973.png-wh_

关闭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:将链设置为政策ACCEPTfilter [肯定]

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服务器的共享文件: 

E1CentOS系统下测试:                

[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 命令,退出访问。

E2window 7系统下测试,结果如图:

4a8ddb825c8dc915620c4c22f44832f0.png-wh_              

 

从图中能够看出,公共目录共享成功。

214a49b05effab73ed8e7688d78ee69d.png-wh_

 

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、将创建的两个账户(lisizhangsan)添加到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本身的目录、匿名公共目录、lisizhangsan共享的非匿名目录。以下图所示:

bc2a83c0f141d00419850c0bf28be8ab.png-wh_

 

3、共享目录下的不一样目录进行分组。

需求:

3.1.在系统分区时单独分一个Company的区,在该区下有如下几个文件夹:HR FMShare。在Share下又有如下几个文件夹:HRFMTools

3.2.各部门对应的文件夹由各部门本身管理,Tools文件夹由管理员维护。

3.3. HR管理员帐号:hradmin;普通用户帐号:hruserFM管理员帐号: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,能够看到相应的共享目录,以下图所示:

2a46b6a80c2b7df07873d482e3306a8c.png-wh_

 

Windows下能够经过cmd命令net use查看链接信息:


经过net use  * /delete 删除链接信息

333e151a0897ba94c47a65cfa87a9e62.png-wh_

 

测试完毕。

相关文章
相关标签/搜索