CentOS Linux 下安装Samba

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

一、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日志并进行多维度分析。
相关文章
|
7天前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
9天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
80 20
|
7天前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
42 13
|
3天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
60 7
|
10天前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
27 2
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
2月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
474 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
65 4
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
54 5
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。

热门文章

最新文章