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服务器,那么使用用户登录之后,再次访问默认就把你登录成之前的那个用户了,很烦每次都要重启。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度信念网络DBN的一个matlab实例「建议收藏」

    关于深度学习的一些个人浅见:   深度学习通常是训练深度(多层)神经网络,用于模式识别(如语音、图像识别);深度网络指是具有深层(多层)网络结构的神经网络。   深层网络由于神经元多,参数多,拟合表现能力强,有表现欲解决复杂问题的能力。   但是深度网络存在很多局部最优解,深度网络的训练容易停留在局部最优上,初始参数的选择对网络最终收敛在那个位置有很大的影响。

    2022年4月12日
    190
  • OpenCV视频识别检测人数跟踪统计

    OpenCV视频识别检测人数跟踪统计Python+OpenCV视频识别检测人数跟踪统计如需远程调试,可加QQ905733049由专业技术人员远程协助!运行代码如下:importnumpyasnpimportcv2importtimeimportdatetimecap=cv2.VideoCapture(“vtest.avi”)#参数为0是打开摄像头,文件名是打开视频fgbg=cv2.createBackgroundSubtractorMOG()#混合高斯背景建模算法whileTrue:

    2022年6月6日
    31
  • php网上购物系统_有享网商城官网

    php网上购物系统_有享网商城官网实现功能:1、系统功能模块包括:1)登陆注册模块包括验证码、找回密码。注册模块中要使用Ajax判断用户名是否已经存在,使用正则表达式判断电子邮件、手机号和用户密码的格式是否合法。2)用户管理模

    2022年8月1日
    5
  • 如何激活成功教程SQLyog 企业版,无限期试用[通俗易懂]

    如何激活成功教程SQLyog 企业版,无限期试用[通俗易懂]如何激活成功教程SQLyog企业版,无限期试用SQLyog是一个功能强大,界面简洁大方的MysqlGUI客户端。截止到这篇博客日期2009-08-15,sqlyog8.13已经释出。其通用版是免费的版本——已经是同类软件的佼佼者了但其打开、关闭软件提示画面,软件界面里灰色的不可用企业功能这是让人心里痒痒!网上也有不少的激活成功教程版,先不管其是否真的完美激活成功教程,这使用激活成功教程的软件总是叫人底气

    2022年9月23日
    2
  • C#移动端开发:获取用户定位和IP地址上传至SQL数据库

    C#移动端开发:获取用户定位和IP地址上传至SQL数据库文章为进阶栏目内容,详细解释可以看基础栏目这里使用的是

    2022年6月24日
    27
  • 在eclipse中拉取github互联网上的代码

    在eclipse中拉取github互联网上的代码

    2021年7月17日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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