CentOS Linux 下安装Samba

简介:

一、Samba简介 
    samba是一个工具套件,在Unix上实现SMB(Server Message Block)协议,或者称之为NETBIOS/LanManager协议。SMB协议通常是被windows系列用来实现磁盘和打印机共享。
samba的核心是两个守护进程smbd和nmbd程序,在服务器启动到停止期间持续运行。Smbd和nmbd使用的全 部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享, 共享输出给谁及如何进行输出。Smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与 Linux进行协商,nmbd进程使其它主机(或工作站)能浏览Linux服务器。 

    如果安装时用rpm安装,那么启动samba不用service smb start,用service nmbd start,service smbd start也可以的。 

二、Samba安装 

1、临时关闭SElinux,使用如下命令就可以:

1
2
#/usr/sbin/setenforce  0  立刻关闭 SELINUX
#/usr/sbin/setenforce  1  立刻启用 SELINUX

2、永久关闭,编辑配置文件

1
2
#vi /etc/selinux/config 
# set  SELINUX=disabled

3、在可以联网的机器上使用yum工具安装,如果未联网,则挂载系统光盘进行安装。

1
# yum install samba samba-client samba-swat

2、查看安装状况 

1
2
3
4
5
6
7
#rpm -qa|grep samba 
samba-winbind- 3.6 . 9 - 151 .el6.i686 
samba-winbind-clients- 3.6 . 9 - 151 .el6.i686 
samba-common- 3.6 . 9 - 151 .el6.i686               //主要提供samba服务器的设置文件与设置文件语法检验程序testparm 
samba-client- 3.6 . 9 - 151 .el6.i686                    //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集 
samba-swat- 3.6 . 9 - 151 .el6.i686                     //基于https协议的samba服务器web配置界面 
samba- 3.6 . 9 - 151 .el6.i686                            //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项

    Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的启动/关闭文件。 

3、启动Samba服务器

1
2
#/etc/init.d/smb start 
#/etc/init.d/nmb start

4、查看samba的服务启动情况 

1
#service smb status

5、设置开机自启动 

1
# chkconfig --level  35  smb on              //在3、5级别上自动运行samba服务

二、Samba配置

第一步: 新建smb.conf

1
# vim /etc/samba/smb.conf

我们来实现一个最简单的功能,让所有用户可以读写一个Samba 服务器共享的一个文件夹

然后把下面这段写入smb.conf中;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
max connections =  100
deadtime =  30
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = yes
log file = / var /log/samba/log.%m
max log size =  50
security = user
passdb backend = tdbsam
load printers = yes
cups option = raw
 
dos charset=cp936 
unix charset=cp936 #加上这二句就可以正确显示中文了。
 
[linuxidc]
comment = This Is Test        
path = /home/test        
writeable = yes        
browseable = yes        
available = yes
read only = no
valid users = test

第二步:建立用户相应目录并授权;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1 、创建用户组 
#groupadd test 
2 、建立组用户 
#useradd -s /sbin/nologin -d /home/test -g test test 
3 、修改用户密码 
#passwd test 
5 、将刚才建立的两个帐户添加到samba的账户中 
#smbpasswd -a test 
检验samba是否安装成功
  执行testparm
# /usr/local/samba/bin/testparm
如果没有任何错误,那么恭喜你,samba已经安装成功了
 
重启samba
# service smb restart

三、开启防火墙端口号

1
2
3
4
5
6
1 )Port  137  (UDP) - NetBIOS 名字服务 ; nmbd
2 )Port  138  (UDP) - NetBIOS 数据报服务
3 )Port  139  (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4 )Port  389  (TCP) - 用于 LDAP (Active Directory Mode)
5 )Port  445  (TCP) - NetBIOS服务在windos  2000 及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6 )Port  901  (TCP) - 用于 SWAT,用于网页管理Samba

开启UDP端口:

1
# iptables -I INPUT -p udp -m multiport --dport  137 , 138  -j ACCEPT

开启TCP端口: 

1
# iptables -I INPUT -p tcp -m state --state NEW -m multiport --dport  139 , 445  -j ACCEPT

保存配置: # service  iptables  save

四、linux操作系统测试

1
# smbclient -L  //服务器ip -U test


、Samba访问

 windows  :浏览器或资源管理器,输入\\linux主机名,可以找到共享的目录read,成功。 

 mac 打开safari输入smb://ip,回车后出现输入用户名密码对话框,若是匿名则选择作为“客人”选项


注解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
全局参数:
==================Global Settings ===================
[global]   #这段是全局配置,是必段写的。其中有如下的几行;
workgroup  #设定Samba Server所要加入的工作组或者域,就是Windows中的工作组。);
netbios name  #就是在Windows中显示出来的计算机名;
server string  #就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
max connections =  0   #指定最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。 0 表示不限制。
deadtime =  0    deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟, 0 代表Samba Server不自动切断任何连接。
log file = / var /log/samba/log.%m  #设置日志的位置及名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。
max log size =  0    #定义日志记录文件的大小,单位是KB,如果是 0 的话就不限大小
smb passwd file = /etc/samba/smbpasswd   用来定义samba用户的密码文件。smbpasswd文件如果没有那就要手工新建。
encrypt passwords = yes/no   是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。
username map = /etc/samba/smbusers   用来定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。
 
security = user   #指定安全模式。大多数用户使用user级的安全模式,samba用本地linux口令文件验证。
定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。 
  share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。 
  user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。 
  server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。 
  domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。  
  后面三种安全级都要求用户在本linux机器上也要系统帐户。否则是不能访问的 
 
passdb backend = tdbsam  passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。
1 .smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实
用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2 .tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。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” 
共享参数:
================== Share Definitions ==================
[Linuxidc] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
available = yes/no  用来指定该共享资源是否可用。
guest ok 匿名用户以guest身份是登录;
admin users = 该共享的管理者  用来指定该共享的管理员(对该共享具有完全控制权限)。在samba  3.0 中,如果用户验证方式设置成“security=share”时,此项无效;
valid users = 允许访问该共享的用户;
invalid users = 禁止访问该共享的用户;
write list = 允许写入该共享的用户   例如:write list = bobyuan,@bob;
public  = yes/no    public 用来指定该共享是否允许guest账户访问。
 
几个特殊共享:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
; valid users = MYDOMAIN\%S
  
[printers]
comment = All Printers
path = / var /spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
  
[netlogon]
comment = Network Logon Service
path = / var /lib/samba/netlogon
guest ok = yes
writable = no
share modes = no
  
[Profiles]
path = / var /lib/samba/profiles
browseable = no
guest ok = yes



参考:http://yuanbin.blog.51cto.com/363003/115761/

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1557592如需转载请自行联系原作者


qianghong000

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3天前
|
前端开发 jenkins 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-前端项目发布(五)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-前端项目发布(五)
15 1
|
3天前
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
12 3
|
4天前
|
网络协议 Linux Docker
在centos7下通过docker 安装onlyoffice
在centos7下通过docker 安装onlyoffice
17 0
|
1天前
|
关系型数据库 MySQL Linux
Linux下安装MySQL
Linux下安装MySQL
4 0
|
1天前
|
安全 Linux 网络安全
【操作系统】实验一 Linux操作系统安装
【操作系统】实验一 Linux操作系统安装
9 3
|
1天前
|
运维 Kubernetes 监控
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
3 0
|
2天前
|
IDE Linux 开发工具
Linux 系统上安装
在Linux和Mac上安装Lua 5.3.0只需下载源码,解压,编译和安装。Windows用户可选择SciTE IDE或通过LuaForWindows在Github或Google Code下载安装。创建 HelloWorld.lua,使用`lua HelloWorld.lua`运行显示"Hello World!"。另可参考LuaDist官方推荐方式安装。
|
3天前
|
Kubernetes Docker 容器
Docker 安装 Portainer
Portainer Community Edition是一个针对容器化应用程序的轻量级服务交付平台,可用于管理 Docker、Swarm、Kubernetes 和 ACI 环境。它的设计理念是部署和使用都简单,该应用程序允许您通过“智能”GUI 和/或广泛的 API 管理所有编排器资源。
39 3
|
3天前
|
Java 开发工具 git
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
11 4
|
3天前
|
Oracle jenkins 持续交付
新的centos7.9安装jenkins(二)
新的centos7.9安装jenkins(二)