CentOS 6.7 samba服务安装和配置

CentOS 6.7 samba服务安装和配置

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中其它windows系统或者Linux系统共享出来的文件。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

系统平台:CentOS 6.7

服务器:balichvm(192.168.171.51)

samba版本:3.6.23-20.el6

1)、使用yum 安装,yuminstall samba samba-client –y

[[email protected] ~]# yum install sambasamba-client –y            #安装

2)、启动samba服务

[[email protected] ~]# /etc/init.d/smb start             #启动smb服务

启动 SMB 服务:                                   [确定]

[[email protected] ~]#

另外:可以使用

/etc/init.d/smb  status           #查看运行状态

/etc/init.d/smb  stop              #停止服务

/etc/init.d/smb  restart                   #重启服务

3)、配置samba服务,samba的配置文件默认是在/etc/samba/smb.conf

主配置文件/etc/samba/smb.conf 主要有两部分构成:

Global Settings        #主要是samba服务的整体运行环境的设定

Definitions                 #主要是针对共享目录的设定

在配置文件里面都有说明每个选项是做什么的,我们根据需求修改,如下是一个开放匿名访问的配置。

[global]

workgroup = MYGROUP

server string =Samba Server Version %v

log file = /var/log/samba/log.%m

max 50KB per log file, then rotate

max log size = 50

security = user

passdb backend= tdbsam

load printers = yes

cups options =raw

[homes]

comment = Home Directories

browseable = no

writable = yes

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no

writable= no

printable = yes

以上是系统默认的配置,三部分组成:[global] 是全局设定;[homes] 是设定共享目录的;[printers] 打印机相关

在[global]

security是设置用户访问Samba Server的验证方式,一共有四种验证方式

(1)share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。

(2)user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。

(3)server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用 Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。

(4)domain:域安全级别,使用主域控制器(PDC)来完成认证。

passdb backend 是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。

(1)smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。

(2)tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/var/lib/samba/private/目录下。passdb.tdb用户数据库可以使用smbpasswd–a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。

pdbedit –a username:新建Samba账户。

pdbedit –x username:删除Samba账户。

pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。

pdbedit –Lv:列出Samba用户列表的详细信息。

pdbedit –c “[D]”–u username:暂停该Samba用户的账号。

pdbedit –c “[]”–u username:恢复该Samba用户的账号。

(3)ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”

4)、如果需要配置一个不需要密码访问的共享,这个共享这是用来查看,不能写入、删除。

操作如下:

[global]中的配置,主要是修改:

workgroup = MYGROUP    修改为:workgroup =WORKGROUP      #和Windows的工作组一样;

security = user       修改为:security= share        #不需要使用密码访问共享;

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

log file = /var/log/samba/log.%m

max log size = 50

security = share

passdb backend = tdbsam

load printers = yes

cups options = raw

共享模块如下:

[homes Share]

comment = Home Directories

path=/data/smbshare

browseable = yes

writable = no

public =yes

保存配置文件,然后建立一个共享目录:

[[email protected] ~]# mkdir /data/smbshare

重启服务,验证,在验证的过程中,最后先关闭防火墙,或者添加防火墙规则放行。

[[email protected] ~]# /etc/init.d/smb restart

关闭 SMB 服务:                                [确定]

启动 SMB 服务:                         [确定]

[[email protected] ~]#

现在就配置好一个可以不需要密码访问的共享。

5)、配置一个需要使用用户名和密码访问的共享,又该如何做呢?

修改配置文件

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

log file = /var/log/samba/log.%m

max log size = 50

security = user

passdb backend = tdbsam

load printers = yes

cups options = raw

[homes Share]

comment = Home Directories

path=/data/smbshare

browseable = yes

writable = yes

public =yes

主要是修改,security,又share改为 user,这是使用Samba Server负责检查账号和密码的正确性。这里是可以写入的,而且使用密码登录也是用到系统的用户映射samba的用户,所以需要这个系统的用户也有写入的权限。

[[email protected] ~]# useradd smb01 -s/sbin/nologin           #创建系统用户

[[email protected] ~]# pdbedit -a smb01                     #创建samba用户

new password:

retype new password:

Unix username:        smb01

NT username:

Account Flags:        [U          ]

User SID:            S-1-5-21-2364909119-1490199994-3424665779-1000

Primary Group SID:    S-1-5-21-2364909119-1490199994-3424665779-513

Full Name:

Home Directory:       \\balichvm\smb01

HomeDir Drive:

Logon Script:

Profile Path:         \\balichvm\smb01\profile

Domain:               BALICHVM

Account desc:

Workstations:

Munged dial:

Logon time:           0

Logoff time:          三, 06 2月 203623:06:39 CST

Kickoff time:         三, 06 2月 203623:06:39 CST

Password last set:    五, 06 11月 201512:50:08 CST

Password can change:  五, 06 11月 201512:50:08 CST

Password must change: never

Last bad password   : 0

Bad password count  : 0

Logon hours         :FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

[[email protected] ~]#

在上面的操作中,首先是建立一个系统用户,然后使用pdbedit –a 增加用户登录samba服务的用户和输入密码。

pdbedit 可以使用 –h 选项查看帮助信息。

重启smb服务就可以访问共享了,这时候需要输入密码。

6)、访问samba共享资源

Linux的客户端需要用到smbclient这个工具,系统默认自带。

smbclient –L  //Samba服务器的ip地址  -U Samba用户名    ##查看samba服务器上的共享资源

smbclient //Samba服务器的ip地址  -U  Samba用户名           ##登录samba服务器

如要需要挂载,需要安装cifs-utils软件包(yum install 即可)

mount –t cifs //ip/sharename /localdir –ousername=user, password=passwd  #挂载samba共享

windows客户端:

运行——输入“\\ip       然后输入用户名和密码(如果需要的话)

添加防火墙规则:

[[email protected] ~]# netstat -lnp |grep smb

tcp       0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      33561/smbd

tcp       0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      33561/smbd

tcp       0      0 :::445                      :::*                        LISTEN      33561/smbd

tcp       0      0 :::139                      :::*                        LISTEN      33561/smbd

[[email protected] ~]#

可以看到,samba使用的是tcp 139、445端口,需要把这两个端口放行。

[[email protected] ~]# vim/etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp--dport 139 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 445 -j ACCEPT

保存,退出,重启iptables

[[email protected] ~]# /etc/init.d/iptablesrestart              ##重启

Samba案例:(摘自网络)

实现不同的用户访问同一个共享目录具有不同的权限,便于管理和维护。

(1)需求:

1. 某公司有5个大部门,分别为:人事行政部(HR & Admin Dept)、财务部(Financial Management Dept)、技术支持部(TechnicalSupport Dept)、项目部(Project Dept)、客服部(Customer Service Dept)。

2. 各部门的文件夹只允许本部门员工有权访问;各部门之间交流性质的文件放到公用文件夹中。

3. 每个部门都有一个管理本部门文件夹的管理员账号和一个只能新建和查看文件的普通用户权限的账号。

4. 公用文件夹中分为存放工具的文件夹和存放各部门共享文件的文件夹。

5. 对于各部门自己的文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。不是本部门用户不能访问本部门文件夹。

6. 对于公用文件夹中的各部门共享文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。本部门用户(包括管理员和普通用户)在访问其他部门共享文件夹时,只能查看不能修改删除新建。对于存放工具的文件夹,只有管理员有权限,其他用户只能访问。

(2)规划:

根据给出的需求,有如下的规划:

1. 在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:HR、 FM、TS、PRO、CS和Share。在Share下又有以下几个文件夹:HR、FM、TS、PRO、CS和Tools。

2. 各部门对应的文件夹由各部门自己管理,Tools文件夹由管理员维护。

3. 各相关帐号规划:

HR管理员账号:hradmin;普通用户账号:hruser。

FM管理员账号:fmadmin;普通用户账号:fmuser。

TS管理员账号:tsadmin;普通用户账号:tsuser。

PRO管理员账号:proadmin;普通用户账号:prouser。

CS管理员账号:csadmin;普通用户账号:csuser。

Tools管理员账号:shareadmin。

4.文件夹之间的关系:

[[email protected] Company]# tree

.

├── CS

├── FM

├── HR

├── PRO

└── TS

├── Share

│├── CS

│├── FM

│├── HR

│├── PRO

│├── Tools

│└── TS

(3)在系统上安装实现

在操作之前,需要已经安装了samba,如果没有安装,可以使用yum install –y samba samba-client 快速安装。

1. 新建用户,使用useradd命令新建系统用户,这些用户不需要登录系统。然后使用pdbedit –a 添加samba的用户。

[[email protected] ~]# useradd -s /sbin/nologinhradmin    #创建hradmin 用户,不需要登录系统

[[email protected] ~]# useradd -g hradmin -s/sbin/nologin hruser #创建hruser用户,加入hradmin组

[[email protected] ~]# useradd -s /sbin/nologinfmadmin

[[email protected] ~]# useradd -g fmadmin -s/sbin/nologin fmuser

[[email protected] ~]# useradd -s /sbin/nologintsadmin

[[email protected] ~]# useradd -g tsadmin -s/sbin/nologin tsuser

[[email protected] ~]# useradd -s /sbin/nologinproadmin

[[email protected] ~]# useradd -g proadmin -s/sbin/nologin prouser

[[email protected] ~]# useradd -s /sbin/nologincsadmin

[[email protected] ~]# useradd -g csadmin -s/sbin/nologin csuser

[[email protected] ~]# useradd -s /sbin/nologinshareadmin

[[email protected] ~]#

以上都是先创建一个部门的管理帐号,然后在创建一个部门的普通帐号并加入这个部门的组。

使用pdbedit –a 创建SMB帐号

[[email protected] ~]# pdbedit -a hradmin #创建smb用户hradmin

new password:

retype new password:                 #密码123abc

[[email protected] ~]# pdbedit -a hruser      #创建smb用户hruser

new password:

retype new password:                   #密码123abc

[[email protected] ~]# pdbedit -a fmadmin

new password:

retype new password:

[[email protected] ~]# pdbedit -a fmuser

new password:

retype new password:

[[email protected] ~]# pdbedit -a tsadmin

new password:

retype new password:

[[email protected] ~]# pdbedit -a tsuser

new password:

retype new password:

[[email protected] ~]# pdbedit -a proadmin

new password:

retype new password:

[[email protected] ~]# pdbedit -a prouser

new password:

retype new password:

[[email protected] ~]# pdbedit -a csadmin

new password:

retype new password:

[[email protected] ~]# pdbedit -a csuser

new password:

retype new password:

[[email protected] ~]# pdbedit -a shareadmin

new password:

retype new password:

以上的创建的用户名和系统创建的用户名是相同的,输入密码,会有该用户的相关信息展示,这里省略了。

2.创建目录

[[email protected] ~]# cd /

[[email protected] /]# mkdir Company                           #创建总目录

[[email protected] /]# cd Company/                            #进入目录

[[email protected] Company]# mkdir HR FM TS PROCS Share            #创建各部门目录

[[email protected] Company]# cd Share/                         #进入开发共享的目录

[[email protected] Share]# mkdir HR FM TS PROCS Tools          #创建各目录

3.更改目录属性

[[email protected] Company]# chownhradmin:hradmin HR

[[email protected] Company]# chownfmadmin:fmadmin FM

[[email protected] Company]# chowntsadmin:tsadmin TS

[[email protected] Company]# chownproadmin:proadmin PRO

[[email protected] Company]# chown csadmin:csadminCS

[[email protected] Company]# chownshareadmin:shareadmin Share

同个部门的普通用户需要有写入到本部门的权限,对自己的文件有完全控制。

[[email protected] Company]# chmod 1770 HR FMTS PRO CS

[[email protected] Company]# chmod 1775 Share/

把Company目录下的各个部门的目录的所有者和所属组都修改。

[[email protected] Company]# cd Share/                 #进入公共共享目录

[[email protected] Share]# chownhradmin:hradmin HR && chown fmadmin:fmadmin FM && chowntsadmin:tsadmin TS && chown proadmin:proadmin PRO && chowncsadmin:csadmin CS && chown shareadmin:shareadmin Tools

在需求中,公用文件夹中的各部门共享文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。本部门用户(包括管理员和普通用户)在访问其他部门共享文件夹时,只能查看不能修改删除新建。对于存放工具的文件夹,只有管理员有权限,其他用户只能访问。

同一个部门的需要有写入的权限,另外这里就需要使用到特殊权限sticky ,

[[email protected] Share]# chmod 1775 HR FM TSPRO CS          #增加sticky

4.配置samba,配置文件是:/etc/samba/smb.conf,配置如下:

#======================= Global Settings=====================================

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

log file = /var/log/samba/log.%m

max log size = 50

security = user

passdb backend= tdbsam

#============================ ShareDefinitions ==============================

[HR]

comment = This is a directory of HR.

path=/Company/HR/

writable = yes

public =no

admin users = hradmin

valid users = @hradmin

create mask = 0750

directory mask =0750

[FM]

comment = This is a directory of FM.

path=/Company/FM/

writable = yes

public=no

admin users = fmadmin

valid users = @fmadmin

create mask = 0750

directory mask = 0750

[TS]

comment = This is a directory of TS.

path=/Company/TS/

writable = yes

public =no

admin users = tsadmin

valid users = @tsadmin

create mask = 0750

directory mask = 0750

[PRO]

comment = This is a directory of PRO.

path=/Company/PRO/

writable = yes

public =no

admin users = proadmin

valid users = @proadmin

create mask = 0750

directory mask = 0750

[CS]

comment = This is a directory of CS.

path=/Company/CS/

writable = yes

public =no

admin users = csadmin

valid users = @csadmin

create mask = 0750

directory mask = 0750

[Share]

comment = This is a directory of Share.

path=/Company/Share/

browseable = yes

writable = yes

public =no

valid users = shareadmin,@hradmin,@fmadmin,@tsadmin,@proadmin,@csadmin

create mask = 0755

directory mask= 0755

配置完成,在客户机上测试,如果需要开启防火墙,请把tcp 139和445端口放行。

Linux客户机:smbclient  //共享主机IP或者主机名/共享名 -U 用户名  这种方式访问。

windows客户机:开始——运行——输入【\\共享主机IP或者主机名】——回车,按提示输入用户名密码。

如果要切换其他用户测试:

首先通过开始-->运行-->cmd 输入:“net use”命令查看现有的连接,然后执行“net use \\Samba服务器IP地址或者netbios名称\ipc$ /del”,删除Samba服务器已经建立的连接。或者执行“net use * /del”将现在所有的连接全部删除。最后,再次执行“\\ip地址”时,就可以切换用户了。

时间: 2024-09-28 22:21:30

CentOS 6.7 samba服务安装和配置的相关文章

CentOS 7下Samba服务安装与配置详解

centos7.5系统下进行 yum -y install samba samba-client systemctl start smb nmbps -ef | grep -E 'smb|nmb'netstat -tunlp | grep -E 'smbd|nmbd'mkdir /mnt/datauseradd -s /sbin/nologin mtcat /etc/passwd | grep mtsmbpasswd -a mt[输入两遍密码123456]chown mt.mt /mnt/dat

CentOS 7下Samba的安装与配置

CentOS 7下Samba的安装与配置 一.简介 简介以及配置介绍部分来自:https://www.cnblogs.com/muscleape/p/6385583.html Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CI

Ubuntu系统samba服务安装和配置

开发主机和虚拟机之间文件交换除了vmtools之外还可以利用samba服务.在windows下将虚拟机中的文件夹映射为windows下的一个盘.方便文件的操作.samba的安装和配置 1.安装samba软件 sudo apt-get install samba 然后会自动解决依赖关系,自动安装samba 2.配置samba服务 修改/etc/samba/smb.conf文件 在文件的最后添加 [my] comment = Public Stuff path = /home/mingyuan/sa

centos tftp和samba的安装与配置

Tftp服务器的安装于配置 1 安装: 命令:#yum –y install tftp 2 安装完毕之后,将tftp服务器设置为开机启动,方法:(命令)#setup→选择system server→选中tftp选项. 3 输入命令(#netstat -a | grep  tftp 检查tftp是否已经启动) 4 配置:命令:#gedit /etc/xinted.d/tftp 主要修改   disable    =   no Server =   -s /tftpboot 1 service tf

【CentOS】NFS服务器的安装与配置

一.系统环境 [[email protected] mnt]# cat /etc/redhat-release CentOS release 5.8 (Final) [[email protected] mnt]# uname -r 2.6.18-308.el5 [[email protected] mnt]# uname -m x86_64 [[email protected] mnt]# iptables -F #暂时关闭Linux系统防火墙 二.NFS服务器端配置 1.检查nfs与rpc(

Samba服务安装

安装Samba服务   1.在可以联网的机器上使用yum工具安装,如果未联网,则挂载系统光盘进行安装. # yum install samba samba-client samba-swat 有依赖关系的包samba-common.samba-winbind-clients.libsmbclient将自动安装上去. 2.查看安装状况 3.安装包说明 samba-common-3.5.10-125.el6.x86_64               //主要提供samba服务器的设置文件与设置文件语

Samba的安装与配置

Samba的安装与配置: 准备:关闭其他虚拟设备 #/etc/init.d/libvirtd stop #/etc/init.d/xend stop #chkconfig libvirtd off #chkconfig xend off 1  安装要求: 首先,配置Linux网络,之后安装.配置Samba服务器: 2  网络配置 1. 启动Linux系统,以root用户登录. 2.在控制台输入"ifconfig"命令,判断网卡是否启动. 网卡配置信息:图中显示只存在一个lo的内部环回,

【VNC】Linux环境VNC服务安装、配置与使用

[VNC]Linux环境VNC服务安装.配置与使用 2009-06-25 15:55:31 分类: Linux 前言:作为一名DBA,在创建Oracle数据库的过程中一般要使用dbca和netca图像化进行建库和创建监听(如果使用脚本建库另说),如果您身体好估计可以在瑟瑟发抖的机房中完成数据库的创建过程,由于本人对寒冷比较敏感,又不想通过这样的方式锻炼身体,所以更愿意在舒适的房间内一边品味着咖啡的浓香,顺便度过相对枯燥的数据库安装和配置的过程,So,图形化操作工具是必不可少的,在Linux操作系

Centos 6.5 SNMP客户端安装及配置版本net-snmp-5.7.3

Centos 6.5 SNMP客户端安装及配置SNMP版本:net-snmp-5.7.3.tar.gz1.下载软件cd /usr/local/srcyum -y install gccwget http://nchc.dl.sourceforge.net/project/net-snmp/net-snmp/5.7.3/net-snmp-5.7.3.tar.gz 2.解压编译安装tar -zxvf net-snmp-5.7.3.tar.gzcd net-snmp-5.7.3./configure