linux安装samba服务器_开启samba服务

linux安装samba服务器_开启samba服务Centos7samba的简介:我们都知道windows上面有一个很方便的文件共享的功能,samba服务主要就是实现了linux平台上的文件共享功能,使得linux平台也能够和windows进行文件共享,但是使用linux搭建的文件共享服务器对于windows来说和平常windows和windows之间进行文件共享没有什么区别。因为samba服务与windows的文件共享差不多,所以它的作用范围和windows的文件共享一样,只能在其所在的局域网生效。samba的主要配置文件1、/e

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Centos7

samba的简介:

我们都知道windows上面有一个很方便的文件共享的功能,samba服务主要就是实现了linux平台上的文件共享功能,使得linux平台也能够和windows进行文件共享,但是使用linux搭建的文件共享服务器对于windows来说和平常windows和windows之间进行文件共享没有什么区别。

因为samba服务与windows的文件共享差不多,所以它的作用范围和windows的文件共享一样,只能在其所在的局域网生效。

samba服务有两个服务,但是起主要作用的还是smbd服务,nmbd的主要工作就是解析其他客户机发送的计算机名到ip地址的解析。

linux安装samba服务器_开启samba服务

samba服务的相关软件包

samba-common :使用的工具,语法检测工具
samba-client :samba的客户端
samba-lib : 相关的库文件
samba :主要的程序文件
samba-swat :samba的web界面

在centos7中直接yum install samba -y 就会将相关的软件包都暗装好

语法检查

testparm 直接输入即可

samba的主要配置文件

1、/etc/samba/smb.conf :主要的配置文件,所有samba的相关服务几乎都是在这里配置

2、/etc/samba/lmhosts :这个配置文件记录着当前局域网的主机名和对应ip的关系

3、/var/lib/samba/private下的passdb.tdbsecrets.tdb是samba文件的相关密码文件

主配置文件的相关参数

PS!!!:如果参数是单个用户,那么直接输入用户名即可,如果参数是用户组,那么就需要在用户组的前面输入@,比如@用户组1,这样才会识别成用户组。

主配置文件分为两个部分,第一部分是全局配置,对全部的共享目录都生效。第二部分是共享配置,主要是针对每个共享内容,共享配置这块内容需要单独区分出来去配置。

(1)全局配置项与相关参数

workgroup=WORKGROUP :工作组
server string = “xxxxx” :服务器的备注
netbios name = “xxx” :主机名
interfaces = lo /eth0 /192.168.12.2/24 /192.168.13.2/24 :可以写网卡或者地址
hosts allow =xxx :允许的IP地址
max connection = 0 : 最大连接数,0表示不限制
deadtime = 0 :表示最大空闲时间
log file=/var/log/samba/log.%m :日志文件的位置,其中%m是用户名
每个用户一个日志文件
max log size =50 :日志文件的最大容量为50kb
security =user :如果要设置为share模式,在这条下面输入

map to guest =Bad User

passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
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”

上面几种的验证方式我没有认真去研究,但是默认使用smbpasswd -a添加用户即可完成使用相关用户登录。

encrypt passwords =yes / no :是否开启密码加密保存,默认开启
smb passwd file =/etc/samba/smbpasswd : 定义samba用户的密码文件路径
username map =/etc/samba/smbusers :定义用户映射文件路径
guest account=nobody :设置guest的用户名

(2)共享文件的配置项与相关参数

[共享文件名]:如果我们想要共享一个资源就必须用左边的格式写出共享的名字,这是一个共享内容的开头。
comment =”xxxxxx” :被共享文件的相关备注
path =共享目录路径 :定义共享目录
browseable=yes / no :是否可以看到,看不到依然可以指定具体路径并去访问
writable = yes /no :该资源是否可写
available =yes/no :该资源是否有用 
admin users= 该共享的管理者 :定义该共享目录的管理员,可以随便操作该共享目录
valid users =允许访问的人  :定义哪些用户是合法的且可以访问
invalid users =不允许访问的人   :定义哪些用户是非法不能访问
write list =允许写入该共享的用户   :定义哪些用户对该共享目录拥有写权限
public =yes /no :是否允许匿名登录  
guest ok =on   :是否预先匿名登录
create mask = 0775                         # 客户端上传文件的默认权限
directory mask = 0775                      # 客户端创建目录的默认权限
read list = @kevin     :定义哪些用户对该共享目录拥有读权限

如何使用用户登录

如果我们想要使用用户登录,先添加一个系统用户,然后再使用“smbpasswd -a 用户名 ” 添加刚刚创建的系统用户,就能够使用这个用户去登录了。

smbpasswd 的用法:

-a :添加一个用户

-d:冻结用户

-e:解冻用户

-x:删除用户

-s:非交互方式创建用户,比如echo 111 | smbpasswd -a xxx

用户映射文件

如果只是单纯的将系统用户作为samba用户,那么别人如果拿到samba用户的话,依然可以将这个用户去登录服务器。所以就有了用户映射文件。

实现方式:

1、usernamed map =/etc/samba/smbusers :定义用户映射文件的位置

2、在映射文件内部添加内容:

samba用户=虚拟用户

比如我们创建了一个samba用户AA,然后我想使用另外一个虚拟用户去登录这个samba用户,那么就可以在文件内部输入:AA=BB CC ,这样的话我们就可以使用BB或者CC去登录samba服务器,但是本质上我们使用的还是AA用户。

定义了一个samba共享目录,如果没有用配置项明确指出,那么它的默认权限是什么? 

linux安装samba服务器_开启samba服务

我们看这个目录,关于共享配置项只定义了一个共享目录,当然全局配置已经配置好了,我一般使用的习惯还是将cmd.conf.example拿来复制然后进行一些修改,然后作为主要的配置文件。

针对上面这个例子,如果用配置项和参数来表示的话应该是下面这样的:

[test]

path = /test

borwseable = yes

read only = yes

guest ok = no

valid users = 所有人

如果我们对共享文件赋予用户写入的权限,那么写入的文件的权限、所有者和所属组又会是什么呢?

默认下相所有者和所属组和当前登录的用户的所有者和所属组相同,同时权限是744.

但是如果当前用户被设置为当前共享目录的管理员,那么创建出来后的内容的所有者是root,所属者和该用户的所属组相同。

配置项available 和 browseable的区别

如果一个共享文件的available被设置为no,那么这个共享文件就相当于不能用了。

如果一个共享文件的browseable被设置为no,那么这个资源只是不可见,只要输入完整的路径依然能够访问。

系统权限对文件共享的影响

我们访问共享内容,都是以一个系统用户的身份去访问的,这个系统用户对这个共享内容来说要么是拥有者,同组的成员,或者是其他,所以去访问这些共享内容的时候,限制其访问的权限的组成仅只有rwx这三个的排列组合。

共享目录的默认权限是RX,我们做权限的修改只能在RX之上,而不能在之下,即共享目录的权限要么是RX,要么是RWX。如果改为其他的会有如下这些影响:

WX:该共享目录无法访问

RW:该共享目录无法访问

R:该共享目录无法访问

X:该共享目录无法访问

W:该共享目录无法访问

将用户设置为管理员有什么用?

个人认为如果只是在samba中将某个用户设置为管理员,只是代表在samba这边放行了该用户的相关限制。但是在系统权限上并没有放开,我们还是需要在系统权限上面下功夫。

来个例子:

我们来看这样一个例子:假如我们需要一个共享目录,然后将其共享出去,只有A组内部的人才能访问这个共享文件夹,A组有一个管理员,它对这个共享目录有完全控制权限,普通用户能够读取共享文件夹的内容,而且能创建自己和删除自己的东西。那这个东西应该如何实现呢?

很容易看出来,如果我们仅仅使用samba内部的权限限制项是不能完成这个需求的,所以我们要使用系统权限配置。

我们将这个共享文件夹的拥有者设置为A组管理员,所属组设置为A组,然后将该文件夹的权限设置为770(注意这里所属组也要有写权限,但是其他人就没有必要有任何的权限了),然后为该文件夹添加粘滞位,使得每个用户自己创建的东西只有自己才能删除。

我们现在来总体看一些该目录的权限:770的权限+粘滞位

1、首先770的权限保证了管理员和组内成员的读写权限,同时还拒绝了其他用户的访问

2、粘滞位保证了组内成员只能管理自己的内容,而不能删除该目录中的其他内容

3、如果将管理员设置为拥有者且拥有RWX权限,而且该目录还有粘滞位权限,那么拥有者可以无视该粘滞位权限,即其他用户创建的内容,他都可以进行任意的操作。

不知道为什么如果用windows去访问samba服务器,那么使用用户登录之后,再次访问默认就把你登录成之前的那个用户了,很烦每次都要重启。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194185.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mysql8.0.25安装配置教程(windows 64位)最详细

    目录1.官网下载MySQL2.配置初始化文件my.ini3.初始化MySQL4.安装mysql服务并启动+修改密码5.配置环境变量6.部分疑难杂病7.使用连接工具连接mysql1.官网下载MySQL下载Mysql点击下载mysql.下载完成后解压到某一个文件夹(记住这个路径,一会要用到)2.配置初始化文件my.ini在根目录下创建一个txt文件,名字叫my,文件后缀为ini之后复制下面这个代码放在文件下(新解压的文件没有my.ini文件,需自行创建)以下代码除安装目录和数据的存放目录需修

  • Ehcache 入门详解 (转)[通俗易懂]

    Ehcache 入门详解 (转)[通俗易懂]一:目录EhCache简介HelloWorld示例Spring整合二:简介2.1、基本介绍EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hiberna

  • VM虚拟机安装教程_ghost手动安装教程

    VM虚拟机安装教程_ghost手动安装教程VMware最新官方下载与安装目录一、VMware官方下载二、虚拟机安装一、VMware官方下载首先我们访问官网地址https://www.vmware.com/cn.html注意:没有账号必须先注册才能下载。注册页面https://my.vmware.com/cn/web/vmware/registration注册完账号后进行以下步骤:如图,选择下载专…

  • 热部署JRebel的使用

    热部署JRebel的使用JRebel是一套JavaEE开发工具。JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品。JRebel是收费软件,用户可以在JRebel官方站点下载30天的评估版本。Jrebel可快速实现热部署,节省了大量重启时间,提高了个人开发效率。JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应…

  • laravel 在nginx服务器上除了首页其余都是404的问题

    laravel 在nginx服务器上除了首页其余都是404的问题

    2021年10月27日
  • php .asmx,php实现通过soap调用.Net的WebService asmx文件

    php .asmx,php实现通过soap调用.Net的WebService asmx文件本文实例讲述了php实现通过soap调用.Net的WebServiceasmx文件。分享给大家供大家参考,具体如下:最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现在需要测试一下php版本对它的调用,经过各种探索,相关的PHP调用webservice的过程如下:1.打开php相关扩展:找到配置文件php.ini文件,打开以下扩展extension=php_so…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号