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)


相关推荐

  • カード名義_acwing题库

    カード名義_acwing题库原题链接给定一棵包含 n 个节点的有根无向树,节点编号互不相同,但不一定是 1∼n。有 m 个询问,每个询问给出了一对节点的编号 x 和 y,询问 x 与 y 的祖孙关系。输入格式输入第一行包括一个整数 表示节点个数;接下来 n 行每行一对整数 a 和 b,表示 a 和 b 之间有一条无向边。如果 b 是 −1,那么 a 就是树的根;第 n+2 行是一个整数 m 表示询问个数;接下来 m 行,每行两个不同的正整数 x 和 y,表示一个询问。输出格式对于每一个询问,若 x 是 y 的祖先则输

  • pycharm conda 虚拟环境_yum源配置本地镜像

    pycharm conda 虚拟环境_yum源配置本地镜像开始使用Pycharm,搭配Conda做包管理,按照网上教程使用过程中发现镜像源不管是阿里的还是清华的都会有404异常,花了点时间找到正确的配置方式。记录一下备忘。参考链接:https://blog.csdn.net/weixin_42425256/article/details/105099769https://blog.csdn.net/weixin_39918690/article/details/110606097https://www.cnblogs.com/tianlang25/.

  • mybatis一级缓存和二级缓存工作方式_redis二级缓存

    mybatis一级缓存和二级缓存工作方式_redis二级缓存系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言二、mybatis二级缓存:出现的原因:二级缓存介绍:二级缓存清除策略:事务管理策略:二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了

  • ZOJ-1188「建议收藏」

    ZOJ-1188「建议收藏」也很水,直接统计权值然后排序即可

  • 小树311_森林小道

    小树311_森林小道原题链接森森开了一家快递公司,叫森森快递。因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(N−1)编号。由于道路限制,第i号城市(i=0,⋯,N−2)与第(i+1)号城市中间往返的运输货物重量在同一时刻不能超过C​i​​ 公斤。公司开张后很快接到了Q张订单,其中j张订单描述了某些指定的货物要从S​j​​ 号城市运输到T​j​​ 号城市。这里我们简单地假设所有货物都有无限货源,森森会不定时地挑选其中一部分货物进行运输。安全起见,这些货物不会在中

  • Python搭建代理IP池(一)- 获取 IP[通俗易懂]

    Python搭建代理IP池(一)- 获取 IP[通俗易懂]使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个IP的访问速度或访问次数,超出了它的限制你的IP就会被封掉。对于访问速度的处理比较简单,只要间隔一段时间爬取一次就行了,避免频繁访问;而对于访问次数,就需要使用代理IP来帮忙了,使用多个代理IP轮换着去访问目标网址可以有效地解决问题。目前网上有很多的代理服务网站可以提供代理服务,也提供一些免费的代理,但可用性较差,如果需…

发表回复

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

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