AD管理linux客户端

简介:

https://www.jianshu.com/p/ecfc5a8c4237
AD1.xxx.corp: 是贵司Windows AD上xxx.corp这个域的全局主域控制器
LoginNO: 是贵司AD域xxx.corp中一个组
admin.win: 是贵司AD域xxx.corp中的一个具有管理员权限的用户
Daha.Ma: 是贵司AD域xxx.corp中的一个普通用户
SudoNO: 是贵司AD域xxx.corp中一个组
xxx.corp: 是贵司Windows AD上的主域名

组名: linux_group@ecwise.local

192.168.3.81

  1. centos7:

yum -y install realmd sssd oddjob \
oddjob-mkhomedir adcli samba-common;

realm join ad1.xxx.corp -U admin.win; # 这里需要输入admin.win的密码
realm permit -g LoginNO@xxx.corp; #这里以允许LoginNO组为例

visudo

添加这么一句:

%SudoNO@xxx.corp ALL=(ALL) ALL

sssd.conf

vim /etc/sssd/sssd.conf

修改两句如下:

use_fully_qualified_names = False
fallback_homedir = /home/%u

重启服务

systemctl restart sssd;

  1. centos6:

yum -y install sssd oddjob oddjob-mkhomedir adcli samba-common authconfig;
adcli join ecwise.local -U sql01_admin; # 这里需要输入密码

authconfig --enablesssd --enablesssdauth --enablemkhomedir --enablekrb5 --update;
yum install pam_krb5

service messagebus start;
chkconfig messagebus on;
service oddjobd start;
chkconfig oddjob on; # addjob用来自动建立用户的家目录

krb5.conf

vim /etc/krb5.conf

使得看起来像这样:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = xxx.corp
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
xxx.corp = {
kdc = AD1.xxx.corp
admin_server = AD1.xxx.corp
}

[domain_realm]
.example.com = xxx.corp
example.com = xxx.corp

sssd.conf

vim /etc/sssd/sssd.conf

修改内容如下:

[sssd]
services = nss, pam, ssh, autofs
config_file_version = 2
domains = xxx.corp

[domain/xxx.corp]
id_provider = ad
fallback_homedir = /home/%u
shell_fallback = /bin/bash
override_shell = /bin/bash
default_shell = /bin/bash
access_provider = simple
simple_allow_groups = LoginNO
simple_allow_users = Daha.Ma

chmod 600 sssd.conf
sudoer

visudo

添加这么一句:

%SudoNO@xxx.corp ALL=(ALL) ALL

现在的情况将是:

除了LoginNO组和Daha.Ma以外其他域账号不能登录

SudoNO组可以不用密码通过sudo执行任何命令

重启服务

systemctl restart sssd;

维护命令

id Daha.Ma@xxx.corp; # 从AD中获取域用户信息
id Daha.Ma; # 在/etc/sssh/sssd.conf中设置了use_fully_qualified_names为False的可以直接用
adcli delete-computer --domain=xxx.corp -U admin.win ; # 退出AD域

常见问题:

不能加入域

1.当前面adcli join xxxxxx时如果出错:

adcli: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)

的话,请尝试修改/etc/krb5.conf,在[libdefaults]这个区块下加一句:

rdns = false

然后重新再试,即可。

  1. 使用id查不到用户,那么在此加下域:
    adcli join ecwise.local -U sql01_admin; # 这里需要输入密码

  2. 验证不通过:
    Key version number for principal in key table is incorrect

[root@CDDevLnxVM03 etc]# klist -k 
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal


2 CDDEVLNXVM03$@ECWISE.LOCAL
2 CDDEVLNXVM03$@ECWISE.LOCAL
2 CDDEVLNXVM03$@ECWISE.LOCAL
2 CDDEVLNXVM03$@ECWISE.LOCAL
2 CDDEVLNXVM03$@ECWISE.LOCAL
2 CDDEVLNXVM03$@ECWISE.LOCAL
2 host/CDDEVLNXVM03@ECWISE.LOCAL
2 host/CDDEVLNXVM03@ECWISE.LOCAL
2 host/CDDEVLNXVM03@ECWISE.LOCAL
2 host/CDDEVLNXVM03@ECWISE.LOCAL
2 host/CDDEVLNXVM03@ECWISE.LOCAL
2 host/CDDEVLNXVM03@ECWISE.LOCAL
2 host/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 host/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 host/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 host/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 host/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 host/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 RestrictedKrbHost/CDDEVLNXVM03@ECWISE.LOCAL
2 RestrictedKrbHost/CDDEVLNXVM03@ECWISE.LOCAL
2 RestrictedKrbHost/CDDEVLNXVM03@ECWISE.LOCAL
2 RestrictedKrbHost/CDDEVLNXVM03@ECWISE.LOCAL
2 RestrictedKrbHost/CDDEVLNXVM03@ECWISE.LOCAL
2 RestrictedKrbHost/CDDEVLNXVM03@ECWISE.LOCAL
2 RestrictedKrbHost/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 RestrictedKrbHost/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 RestrictedKrbHost/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 RestrictedKrbHost/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 RestrictedKrbHost/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
2 RestrictedKrbHost/CDDevLnxVM03.ecwise.local@ECWISE.LOCAL
在次加域,然后仍然输入密码无法登陆,这次提示如下:
Access denied for user zdchen by PAM account configuration
然后注释掉这两个文件 system-auth/password-auth-ac的pam_krb5.so模块认证即可









本文转自chenzudao51CTO博客,原文链接:http://blog.51cto.com/victor2016/2054880 ,如需转载请自行联系原作者



相关文章
|
4月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
5月前
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
222 0
|
4月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
3月前
|
运维 Kubernetes Linux
docker和kubectl客户端安装Linux
通过上述步骤,您应该已经在Linux环境中成功安装了Docker和kubectl客户端。安装完成后,您可以开始使用Docker来创建和管理容器,使用kubectl来管理Kubernetes集群。这些工具的安装和使用,对于现代云原生应用的开发和运维来说,是一个基础且关键的步骤。
37 0
|
4月前
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
|
4月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
186 1
|
5月前
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
57 11
|
4月前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
5月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
87 1
|
5月前
|
安全 Linux 数据处理
探索Linux的kmod命令:管理内核模块的利器
`kmod`是Linux下管理内核模块的工具,用于加载、卸载和管理模块及其依赖。使用`kmod load`来加载模块,`kmod remove`卸载模块,`kmod list`查看已加载模块,`kmod alias`显示模块别名。注意需有root权限,且要考虑依赖关系和版本兼容性。最佳实践包括备份、查阅文档和使用额外的管理工具。