smb服务器权限修改,终于搞定了samba的文件夹访问权限设置
昨天下午w老师找我,说现在实验室的文件服务器(内网IP为xx.xx.xx.16,所以简称16)上面有一个文件夹需要设置访问权限,只有指定项目组的人能访问。于是乎昨天晚上在许大牛的协助下设置了半天,查了手册,试了好多方法,均告失败。今天上午继续折腾,通过查看samba的日志文件发现了问题所在,终于搞定了。
1. 问题背景
我们实验室的文件服务器装的是Ubuntu Server,它只负责存放文件,而把用户名和密码的验证工作交给另一台装有Windows Server 2003的服务器来做。这就给这次的任务造成了好多困难,因为手册上查到的关于设置访问权限的东东都是直接说,只要在smb.conf配置文件中相应文件夹的配置行添加一行
valid users = user1, @group1
就可以了,可是具体的用户名(或者用户组)到底是16本地的UNIX用户名呢,还是Windows NT域控上的用户名(或者用户组)呢?没人讲。
原始的samba配置文件如下
[global]
security = ads
; netbios name = SVNSERVER
realm = CGCAD.COM
password server = 192.168.100.4
workgroup = CGCAD
idmap uid = 500-10000000
idmap gid = 500-10000000
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
client ntlmv2 auth = yes
encrypt passwords = true
winbind use default domain = yes
restrict anonymous = 2
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = No
printable = No
use client driver = No
browseable = No
load printers = No
[Software]
comment = Share Data
path = /var/software
read only = Yes
create mask = 0775
directory mask = 0775
browsable = Yes
public = Yes
writeable = No
force create mode = 0775
force directory mode = 0775
force security mode = 0775
guest ok = no
inherit permissions = yes
; nt acl support = yes
[TestGroup]
comment = Test Group Share Data
path = /var/TestGroup
read only = No
create mask = 0775
directory mask = 0775
browsable = Yes
public = Yes
writeable = Yes
force create mode = 0775
force directory mode = 0775
force security mode = 0775
guest ok = no
inherit permissions = yes
; nt acl support = yes
[Incoming]
comment = Incoming
path = /var/incoming
read only = No
create mask = 0777
directory mask = 0777
browsable = Yes
public = Yes
writeable = Yes
force create mode = 0777
force directory mode = 0777
force security mode = 0777
guest ok = Yes
inherit permissions = Yes
; nt acl support = Yes
除了打印机,我们一共有三个文件夹:Inconming,Software,TestGroup,其中Software对一般用户只开放了读权限,没有写权限;三个文件夹都需要用户在域控服务器上验证才能访问。
2. 失败的方法们
假设我们要把test group组的用户成员加入TestGroup文件夹的合法用户列表中,其中,test group组有user1,user2两个用户,他们在NT和UNIX上的用户名一样,用户组的名字则不同,在NT上的叫"test group",而在UNIX上的用户组则叫testgroup。
2.1 直接把valid users = @testgroup加入smb.conf文件中的 [TestGroup] 字段下,结果谁也不能访问这个文件夹了。
2.2 不使用组名,改为一个一个地添加用户: valid users = user1, user2 ,结果同上。
2.3 把NT用户组映射到UNIX用户组上,用 net groupmap modify ntgroup="test group" unixgroup=testgroup 命令(需要root权限),仍然不起作用。
2.4 后来w老师建议用简单的方法来解决,就是放弃samba,改用FTP服务;或者直接把TestGroup文件夹移到域控的NT服务器上,但是被许大牛否决了,因为这样相当于饮鸩止渴,还会带来潜在的安全问题;
3. 成功的方法
后来我想到了查看一下samba的登录日志,看看到底为什么相应的用户名被拒绝登录,于是乎在 smb.conf 中的 [global] 字段下面添加两行debug配置:
[global]
; xxx
debuglevel = 100
log file = /etc/samba/long.%m
其中%m代表客户机的netbios名,你当然也可以换成%u,%I等等,这些samba变量的意义如下:
%S 当前服务名(如果有的话)
%P 当前服务的根目录(如果有的话)
%u 当前服务的用户名(如果有的话)
%U 当前对话的用户名
%H 当前服务的用户的Home目录
%v Samba服务的版本号
%h 运行Samba服务机器的主机名
%m 客户机的NETBIOS名称
%L 服务器的NETBIOS名称
%M 客户机的主机名
%I 客户机的IP
%T 当前日期和时间
接着说,当设置好了debuglevel为最高的100之后,试图登录一下,失败,然后赶紧去看日志,发现samba在匹配用户名的时候用的并不是smb.conf中的原来的名称,而是在之前加了一个“CGCAD+” (注:CGCAD是我们的域名),于是乎本来填上去的 valid users = user1 被samba认为是 CGCAD+user1 ,然后按照这个名字去NT域控的用户名列表里面找,似乎没找到。于是乎我就干脆在smb.conf中也把user1前面加上CGCAD+试试,结果竟然成了!修改后的smb.conf如下:
[global]
security = ads
; netbios name = SVNSERVER
realm = CGCAD.COM
password server = 192.168.100.4
workgroup = CGCAD
idmap uid = 500-10000000
idmap gid = 500-10000000
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
client ntlmv2 auth = yes
encrypt passwords = true
winbind use default domain = yes
restrict anonymous = 2
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = No
printable = No
use client driver = No
browseable = No
load printers = No
[Software]
comment = Share Data
path = /var/software
read only = Yes
create mask = 0775
directory mask = 0775
browsable = Yes
public = Yes
writeable = No
force create mode = 0775
force directory mode = 0775
force security mode = 0775
guest ok = no
inherit permissions = yes
; nt acl support = yes
[TestGroup]
comment = Test Group Share Data
path = /var/TestGroup
read only = No
create mask = 0775
directory mask = 0775
browsable = Yes
public = Yes
writeable = Yes
force create mode = 0775
force directory mode = 0775
force security mode = 0775
guest ok = no
inherit permissions = yes
valid users = @CGCAD+"test group"
;nt acl support = yes
[Incoming]
comment = Incoming
path = /var/incoming
read only = No
create mask = 0777
directory mask = 0777
browsable = Yes
public = Yes
writeable = Yes
force create mode = 0777
force directory mode = 0777
force security mode = 0777
guest ok = Yes
inherit permissions = Yes
; nt acl support = Yes
4. 结论
log file很重要。
samba很强大,但是很难配。
smb服务器权限修改,终于搞定了samba的文件夹访问权限设置相关推荐
- 命令行修改文件文件夹访问权限 cacls, 修改hosts内容方法
背景 日常使用Windows的过程中,hosts(C:\Windows\System32\drivers\etc)文件可能被一些程序串改,因此在网上找到禁止/允许修改hosts文件的bat脚本,但是在 ...
- 你必须具有权限才能读取此对象_win10中随心所欲设置文件/文件夹访问权限,可以轻松做到,并不难...
要访问Windows 10上的任何文件或文件夹,你必须具有相应的权限.遗憾的是,如果你没有编辑某些文件和文件夹的权限,则可能会出现某些问题,这时你必须对该文件夹或文件取得所有权. 要想取得某个文件夹的 ...
- 服务器禁止访问文件,服务器文件夹访问权限设置 控制访问权限方法
在企业局域网中,我们经常需要共享文件供局域网用户访问使用,但是为了保证共享文件的安全,我们也需要设置共享文件的访问权限,防止访问共享文件的用户越权访问共享文件的行为.那么,具体如何实现呢?可以通过以下 ...
- 计算机连共享盘被禁止用户,共享文件夹无法访问、设置文件夹访问权限、共享文件夹拒绝访问的解决方法...
在开启共享文件的局域网中,经常出现共享文件无法访问.共享文件夹拒绝访问的问题,导致大家使用共享文件受到限制,影响工作的开展.这一方面是Windows操作系统自身的共享文件访问功能设计缺陷,另一方面也由 ...
- 计算机不能再U盘新建文件夹,如何让你的U盘永不中毒?新建一个文件夹就搞定!-u盘文件夹变成exe...
由于U盘携带方便,很多人都会用来存储重要文件.音乐或是视频等等.不过在使用过程中,有时候一不小心就会遇到U盘中毒的情况,这也给用户带来了不少困扰.其实与其等到发现U盘中毒之后再去找U盘杀毒工具解决,还 ...
- 在linux上备份文件夹在哪里找,Linux 备份 文件夹的权限 然后在其他机器进行恢复...
Study From https://www.cnblogs.com/chenshoubiao/p/4780987.html 用到的命令 getfacl 和 setfacl 备份 getfacl -R ...
- word无法显示图片的问题终于搞定!oh yeah!
我的word中的图片只显示一个方框,这个问题困扰我有一段时间了,今天终于搞定. 原因如下: Word中不能显示公式 问:在Word 2003中编辑好的公式无法显示,只显示为一个方框,该怎么办? 答:W ...
- 终于搞定了小米路由器HD的git了
2019独角兽企业重金招聘Python工程师标准>>> 终于搞定了小米路由器HD的git了 发表在 晒机评测 2018-12-31 19:19:16 来自PC复制链接手机看帖3885 ...
- 一篇搞定 SpringBoot+Mybatis+Shiro 实现多角色权限管理
初衷:我在网上想找整合springboot+mybatis+shiro并且多角色认证的博客,发现找了好久也没有找到想到的,现在自己会了,就打算写个博客分享出去,希望能帮到你. 原创不易,请点赞支持! ...
最新文章
- Ubuntu上五款搜索工具:Albert、Synapse、Utools、Ulauncher、FSearch
- SQLAlchemy 几种查询方式总结
- OpenCV 凸包Convex Hull
- python画车辆轨迹图,在python中绘制轨道轨迹
- ( )不是html的布局标签,不要使用的HTML标签(WEB标准网页布局)
- 【电脑使用经验】怎么查看无线网络中电脑的IP地址?
- python实现二分查找算法_两种方法实现Python二分查找算法
- LeetCode-数组-三数之和
- 不为失败找理由,只为成功找方法
- 代码规范以及单元测试项目
- RAX,eax,ax,ah,al 关系
- visual studio odbc数据源设计器_商业智能BI应该支持哪些类型的数据源?
- 【拓展】一个故事讲完 CPU 的工作原理
- 关于动态生成data组件
- 【目标检测】Receptive Field Block Net for Accurate and Fast Object Detection论文理解
- 编写SQL语句,从Customers中检索所有的顾客名称(cust_name),并按从Z到A的顺序显示结果
- 方舟服务器能不能用ce修改器,方舟生存进化CE修改一览表
- 仿雷电——飞机大战类游戏Ⅰ
- Alfresco 部署 企业文档管理系统
- [转载]工科硕士毕业14年,谈谈我的经验教训
热门文章
- 说说程序员的核心能力:第一个三年:后台、前端、移动应用,第二个三年呢?
- 基于stm32的正点原子Lora模块教程
- 求任意半径圆的面积c语言,需要一个输入半径求圆面积的C语言程序
- 搭建electron+vue工程以及遇到的问题解决
- 如何将微信amr文件转换为mp3文件
- C++ 之constexpr、常量表达式与字面值类型关系以及使用常量表达式的原因
- 安防天下5、6——视频编码器技术DVS、网络录像机(NVR)技术
- 「深度神经网络」(deep neural network)具体是怎样工作的
- Oracle 关于Pooled connection request timed out
- 黑胶歌曲没权限,还好我会Python,一分钟一个歌单,硬盘有点不够用了~