Samba通过ad域进行认证并限制空间大小
最近正在做单位电脑的AD域管理。
为漫游用户文件,研究配置Samba通过ad域进行认证并限制空间大小。
参考了很多资料,现总结如下:
DC:windows server 2016(配置安装域控制器)略...
samba:Centos 7 server 1810(指定IP,其中DNS1地址指定为DC的地址i,DNS2指定为可用的DNS服务器地址。)
域名:xyz.local
dc计算机名:dc
linux计算机名:file
一:前期准备
1.准备分区
因为磁盘配额只能在一块单独的分区上启用,所以笔者专门添加了一块分区挂载到home目录下,这点要注意。
https://www.cnblogs.com/jackadam/p/8213712.html
可以按这篇文章的介绍,挂在新的分区,或新的硬盘。
一般服务器都跑在虚拟化的服务器上,所以添加个新的虚拟硬盘,也是这样添加硬盘。
2.准备linux
我们使用samba的ads模式加入域并提供共享,那么就需要安装若干软件来实现这个功能。
yum -y install pam_krb5* krb5-libs* krb5-workstation* krb5-devel* krb5-auth samba samba-winbind* samba-client* samba-swat* bind-utils quota
其中主要的有samba系列,krb5系列,winbind系列,bind-utils是网络工具,quota是磁盘限额工具
二:samba加入AD域(NT4域)
1.配置DNS
这里并不是配置配置DNS服务器地址,是配置DNS搜索域。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
在最后添加一行:
SEARCH="your_domain_name"
本例是
SEARCH=“xyz.local"
重启linux,或者使用命令 systemctl restart network 来重启网络。
2.验证DNS
使用下面的的命令查看DNS配置参数
cat /etc/resolv.conf
应该有至少两行:
search xyz.local
nameserver 10.99.**.**
第一行是搜索域,第二行是dns服务器地址指向DC,如果你还有可用的DNS地址,可能会在第三行,第四行。
3.查看(配置)主机名
使用命令查看主机名
hostname
如果主机名需要修改可以使用以下命令
hostnamectl set-hostname newname
newname就是新的主机名。
4.测试DNS
能ping 通 dc 并自动解析为 dc.xyz.local即可
ping dc
ping dc.xyz.local
5.使用命令行加入域
authconfig --enablewinbind --enablekrb5 --enablewinbindauth --krb5realm=XYZ.LOCAL --krb5kdc=dc.xyz.local --enablekrb5kdcdns --enablekrb5realmdns --smbsecurity=ads --smbrealm=xyz.local --smbservers=dc.xyz.local --winbindtemplateshell=/bin/bash --winbindjoin=administrator --enablewinbindusedefaultdomain --disablewinbindoffline --smbworkgroup=XYZ --enablemkhomedir --update
根据提示输入域管理员密码即可加入域。
但是提示是有错误
[root@file ~]authconfig --enablewinbind --enablekrb5 --enablewinbindauth --krb5realm=ZZCLD.LOCAL --krb5kdc=dc1.zzcld.local --enablekrb5kdcdns --enablekrb5realmdns --smbsecurity=ads --smbrealm=zzcld.local --smbservers=dc1.zzcld.local --winbindtemplateshell=/bin/bash --winbindjoin=administrator --enablewinbindusedefaultdomain --disablewinbindoffline --smbworkgroup=ZZCLD --enablemkhomedir --update
[/usr/bin/net join -w XYZ -S dc.xyz.local -U administrator]
Enter administrator's password:
Using short domain name --XYZ
Joined 'FILE' to dns domain 'xyz.local'
No DNS domain configured for file. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMTER
尽管有提示错误,但是貌似是DNS注册失败而已。
自己在DC里面注册一个DNS解析就好了。
6.测试域身份
wbinfo -t 可以查看信任关系。
7.手动补全配置
vi /etc/samba/smb.conf
在Global当中添加以下两行
Winbind enum users = yes
Winbind enum groups = yes
在home当中添加以下一行
path = /home/%U
这是authconfig当中没有设置的,经过几天的测试,确实就是这里没有设置,导致了显示共享目录,却无法打开。
三:测试登录域
使用putty登录linux,使用域用户即可登录,并且会自动创建用户的主目录。
建议使用administrator登录,自动创建用户家目录,为后面磁盘配额做准备。
四:配置磁盘配额
1.编辑fstab
按下面格式填入/etc/fstab ,格式是XFS格式
/dev/mapper/storage-storage /storage xfs defaults 0 0
修改为:
/dev/mapper/storage-storage /storage xfs defaults,usrquota,grpquota
重启linux,使设置生效。
2.设置磁盘配‘额
我们使用了XFS格式的磁盘,所以磁盘配额命令有区别了。
xfs_quota -x -c "limit -u bsoft=950M bhard=1024M administrator" /home
xfs_quota -x -c "report -ubin" /home
第一行是设置administrator的磁盘限额。
第二行是查看磁盘限额。
3.将设置的磁盘配额作为模板设置给新用户
刚才我们配置了--enablemkhomedir参数来给ssh登录创建用户家目录。但是samba登录的时候不会自动创建用户家目录。
所以我们使用samba的root preexec 参数来执行samba登录脚本。来确保用户仅使用samba共享访问服务器时能自动创建家目录。
首先编写mkhome.sh
vi /root/mkhome.sh #!/bin/bash
user=$1
group=$2
home=/home/$1 if [ ! -d $home ]; then
mkdir -p $home
chown $user $home
chgrp $gropu $home
chmod 744 $home
edquota -p administrator -u $user
fi
然后编辑smb.conf
vi /etc/samba/smb.conf ;在homes里面加入 path = /home/$U
root preexec = /root/mkhome.sh %U %G
设置mkhome.sh为700权限
chmod 700 /root/mkhome.sh
重启samba
systemctl restart smb
4.验证配置
在其他windows计算机,登录域(非刚才的administrator),然后访问samba服务器。
会看到以用户名命名的一个共享目录。
进去是有权限读写的。
在samba服务器查看磁盘配额。虽然用户ID看不出是谁,但是可以看到磁盘配额是和administrator一样的1G。
另一个磁盘配额检查命令
repquota /storage
/storage 是需要查询配额的目录。
5.后期修改磁盘配额
使用下面的命令,修改域用户的磁盘配额。用户名是带域名的完整用户名。
xfs_quota -x -c "limit -u bsoft=950M bhard=1024M test@xyz.local" /home
五:后记
参考了很多文章,就不一一列举了。
但是还有遗留问题:
1.为什么net ads join 提示DNS注册失败?
是因为linux使用了指定IP?还是某些地方没有配置好。
2.如果先进行ssh登录,那么自动生成的目录蛋没有磁盘配额?
貌似没有,因为默认的创建用户家目录应该不会配置磁盘配额。
3.手动更新的3行配置,能否也使用authconfig配置进去呢?
这个需要继续研究。
4.samba集群该怎么配置?
这个也要继续研究。
5.查到了一些配置selinux的资料,还要实验测试。
重要参考文献:
https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Domain_Member
https://blog.51cto.com/rainbird/197794
https://blog.51cto.com/rainbird/197509
Samba通过ad域进行认证并限制空间大小的更多相关文章
- Samba通过ad域进行认证并限制空间大小《转载》
本文实现了samba服务被访问的时候通过windows域服务器进行用户名和密码验证;认证通过的用户可以自动分配500M的共享空间;在用户通过windows域登陆系统的时候可以自动把这块空间映射成一块硬 ...
- Java利用jcifs集成AD域用户认证
近期一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了如今网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我 ...
- java修改AD域用户密码使用SSL连接方式
正常情况下,JAVA修改AD域用户属性,只能修改一些普通属性, 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改, SSL连接的方式需要操作以下步骤: 1 ...
- Samba结合AD实现域帐号认证的文件服务器
准备一台Windows域控制器, 在Samba服务器上安装Webmin图形化管理工具, samba, krb5-user, winbind. 修改/etc/krb5.conf. [logging] d ...
- freeradius整合AD域作anyconncet认证服务器
一.服务器要求 Radius服务器:centos6.6.hostname.selinux disabled.stop iptables AD域服务器:Windows Server 2008 R2 E ...
- Python实现AD域认证
Python 通过ldap进行ad域账号的校验. 首先需要安装python-ldap的模块 http://www.python-ldap.org/. 在这里用的是windows系统,当然比较容易,下载 ...
- Jenkins配置AD域认证
Jenkins配置AD域认证 #检测域控地址ping youad.com指向的IP #如果不是实际域控ip地址,则修改hosts vi /etc/hosts #192.168.100.100替换为实际 ...
- Ldap实现AD域认证
1.java Ldap基础类 package com.common; import java.io.FileInputStream; import java.io.IOException; impor ...
- SANGFOR AC配置AD域单点登录(二)----AD域侧配置及单点登录认证、注销测试
1.AD域侧配置 1)新建组策略并配置logon登录脚本,以实现用户开机登录域时,自动通过AC认证 AD域服务器"运行"输入gpmc.msc,打开组策略编辑器,如下图. 右建需要 ...
随机推荐
- python代码安全扫描工具
python代码安全扫描工具:Coverity. Fortify.SecMissile(漏扫,对源代码提供基于语义的搜索和分析能力,实现已知安全漏洞的快速扫描)
- P2602 [ZJOI2010]数字计数(递推)
P2602 [ZJOI2010]数字计数 思路: 首先考虑含有前导0的情况,可以发现在相同的\(i\)位数中,每个数的出现次数都是相等的.所以我们可以设\(f(i)\)为\(i\)位数每个数的出现次数 ...
- T-sql 遍历结果集
DECLARE @TAB TABLE( [科室编号] [varchar](50) NULL, [科室编码] [varchar](50) NULL, [科室名称] [varchar](50) NULL, ...
- 如何让VS像CB一样使用
之前用VS,先是完成了GLUT库下的opengl使用: 然后得知GLUT有些过时,又按照教程接触了GLFW库下,反正对我来说是有些复杂. 今天正式试一试用VS来写ACM的题目,发现不能定义string ...
- 日期对象|Date构造函数|
var date = new Date(); console.log(date); //Date {Wed Dec 10 2014 15:59:24 GMT+0800} date.getDay() d ...
- STM32L4R9使用HAL库调试IIC注意事项
STM32使用Cubemx生成的代码中,用到IIC的驱动,但是始终不能读写,因此使用逻辑分析仪,发现原本地址为0x58的写成了0x20,因此肯定是地址错了.因此,总结如下: 1.需要逻辑分析仪分析II ...
- 微信小程序——选择某个区间的数字
很久没有更新文章啦~~记录下今天弄的一个小功能. 先上图: 需求很简单: 第1列改变的时候,第2列也随着改变,并且比第1列大1k. 这里用到了微信的picker 组件,对于不太熟练这个组件的小伙伴可以 ...
- 关于吲哚美辛(NSAIDS)对袢利尿药的影响。
吲哚美辛 一方面是解热镇痛抗炎药,是最强的PG合成酶抑制药之一,另一方面,吲哚美辛可于袢利尿药如呋塞米.依他尼酸竞争近曲小管有机酸分泌途径,可以影响后者的排泄和作用. 吲哚美辛可以抑制前列腺素的合成, ...
- LeetCode 931. Minimum Falling Path Sum
原题链接在这里:https://leetcode.com/problems/minimum-falling-path-sum/ 题目: Given a square array of integers ...
- 【批处理】set命令
原文地址:https://www.cnblogs.com/Braveliu/p/5081084.html [1]set命令简介 set,设置. [2]set命令使用 1. 打印系统环境变量.set命令 ...