文章目录

      • **一、加入Active Directory域**
        • **1. 准备工作**
        • **2. 配置步骤**
          • **步骤1:验证网络和DNS**
          • **步骤2:发现域**
          • **步骤3:加入域**
          • **步骤4:配置SSSD(可选)**
          • **步骤5:配置sudo权限(可选)**
          • **步骤6:验证加域**
          • 步骤7:账户验证
      • **二、退出Active Directory域(SOP)**
        • **1. 退出域**
        • **2. 清理配置**
        • **3. 验证退出**
        • 4.**恢复原始配置**
      • **三、故障排查**
      • **四、注意事项**

以下是Red Hat Enterprise Linux (RHEL) 服务器加入和退出Active Directory(AD域)的详细SOP(标准操作流程),包括准备工作、具体步骤和验证方法:


一、加入Active Directory域

1. 准备工作
  • 网络要求

    • 确保服务器能与域控制器(DC)通信(TCP/UDP 53, 88, 123, 135, 139, 389, 445, 464, 636, 3268/3269)。
    • DNS配置必须指向域控制器的DNS服务器。
  • 账户权限

    • 域管理员账户(用于加域)。
    • 本地root权限。
  • 软件依赖

    sudo yum install -y realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients
    
    #问题:由 samba-common-tools 版本引起,可以尝试单独安装兼容版本
    sudo dnf install -y https://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/samba-common-tools-4.14.5-7.el8_5.x86_64.rpm#重新安装
    sudo dnf install -y realmd sssd oddjob oddjob-mkhomedir adcli samba-common krb5-workstation openldap-clients --allowerasing
    
2. 配置步骤
步骤1:验证网络和DNS
ping ad-domain.example.com
nslookup ad-domain.example.com
步骤2:发现域
sudo realm discover ad-domain.example.com

输出应显示域控制器的详细信息。

步骤3:加入域
sudo realm join --user=admin_user ad-domain.example.com
  • 输入域管理员密码。
  • 验证加入成功:
    sudo realm list
    
步骤4:配置SSSD(可选)

编辑SSSD配置文件(/etc/sssd/sssd.conf):

[sssd]
domains = ad-domain.example.com
services = nss, pam[domain/ad-domain.example.com]
ad_domain = ad-domain.example.com
krb5_realm = AD-DOMAIN.EXAMPLE.COM
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = ad

重启SSSD服务:

sudo systemctl restart sssd
步骤5:配置sudo权限(可选)

允许域用户组使用sudo:

###修改配置文件/etc/sudoers 
# 允许单个域用户(administrator)使用 sudo
administrator@ad-domain.example.com ALL=(ALL) ALL
# 允许域用户组(如 "Domain Admins")使用 sudo
%domain\ admins@ad-domain.example.com ALL=(ALL) ALL###命令行
echo "%domain\ admins@ad-domain.example.com ALL=(ALL) ALL" | sudo tee -a /etc/sudoers.d/domain_admins# 切换为域用户测试 sudo
sudo -u administrator@ad-domain.example.com sudo -l
步骤6:验证加域
  • 检查域用户登录:

    id domain_user@ad-domain.example.com
    
  • 测试Kerberos票据:

    kinit domain_user@AD-DOMAIN.EXAMPLE.COMklist
    预期输出:
    kinit 成功无报错。
    klist 显示有效的 TGT(Ticket Granting Ticket)。
    
    步骤7:账户验证
    #验证登录
    ssh administrator@ad-domain.example.com@localhost
    或
    ssh administrator@<服务器IP>
    预期结果:
    能成功登录,且家目录自动创建(如 /home/ad-domain.example.com/administrator)。#检查家目录是否自动创建
    bash
    ls -l /home/hezhong.com/administrator#验证权限和sudo
    (1) 检查域用户是否在 sssd 缓存中
    bash
    getent passwd administrator@ad-domain.example.com
    getent group "domain admins@ad-domain.example.com"
    预期输出:
    返回域用户和组的详细信息。(2) 测试域用户sudo权限
    如果已配置域用户组(如 domain admins)的 sudo 权限:
    echo "%domain\ admins@hezhong.com ALL=(ALL) ALL" | sudo tee -a /etc/sudoers.d/domain_admins然后测试:
    sudo -u administrator@ad-domain.example.com sudo -l
    预期输出:
    显示域用户有 sudo 权限。#验证SSSD服务状态
    (1) 检查SSSD日志
    sudo tail -n 50 /var/log/sssd/sssd.log
    关键检查点:
    无 Authentication failure 或 Permission denied 错误。
    成功缓存用户信息。(2) 重启SSSD并测试
    sudo systemctl restart sssd
    id administrator@ad-domain.example.com  # 再次验证
    

二、退出Active Directory域(SOP)

1. 退出域
sudo realm leave ad-domain.example.com
  • 若需强制退出(如域控制器不可用):

    sudo realm leave --remove=/var/lib/sss/db/ ad-domain.example.com
    
    #备份关键数据
    /etc/sssd/sssd.conf(SSSD 配置)
    sudo cp /etc/sssd/sssd.conf /etc/sssd/sssd.conf.bak/etc/krb5.conf(Kerberos 配置)
    sudo cp /etc/krb5.conf /etc/krb5.conf.bak/var/lib/sss/db/(SSSD 缓存数据库)
    sudo tar -czvf sssd_db_backup.tar.gz /var/lib/sss/db/#AD 相关日志
    sudo journalctl -u sssd --no-pager > sssd_logs.txt
    
2. 清理配置
  • 删除SSSD缓存:
    sudo rm -rf /var/lib/sss/db/*
    sudo systemctl restart sssd###问题
    ######################################################## 恢复最小化本地认证
    如果不再需要 AD 域认证,可将 SSSD 切换为仅本地认证:
    # 1. 清理旧的 SSSD 配置
    sudo rm -f /etc/sssd/sssd.conf# 2. 生成最小化配置(仅支持本地用户)
    sudo authselect select minimal --force# 3. 重启服务
    sudo systemctl restart sssd#sssd服务验证
    systemctl status sssd  # 应显示 "active (exited)"(无需常驻运行)############################################################ 手动修复 SSSD 配置
    # 1. 创建最小配置
    sudo tee /etc/sssd/sssd.conf > /dev/null <<EOF
    [sssd]
    services = nss, pam
    domains = local[domain/local]
    id_provider = local
    EOF# 2. 设置权限
    sudo chmod 600 /etc/sssd/sssd.conf# 3. 重启服务
    sudo systemctl restart sssd############################################ 完全禁用 SSSD(无身份管理需求)
    如果完全不需要 SSSD:
    # 1. 停止并禁用服务
    sudo systemctl stop sssd
    sudo systemctl disable sssd# 2. 恢复系统默认认证
    sudo authselect select minimal --force
    
  • 恢复原始DNS配置(如有修改)。
3. 验证退出
  • 检查域用户是否无法登录:
    #检查域状态
    sudo realm list
    预期输出:
    无域信息,或显示 configured: no。#检查域用户
    id domain_user@ad-domain.example.com
    预期输出:
    id: administrator@域: no such user。#检查 SSSD 日志
    sudo tail -n 20 /var/log/sssd/sssd.log
    预期输出:
    无与 域 相关的活动日志。
    
  • 确认realm list无域信息。
4.恢复原始配置
#如果加域时修改了 DNS,需还原:
sudo vi /etc/resolv.conf  # 恢复为加域前的 DNS 服务器#清理 Kerberos 票据
sudo kdestroy -A  # 清除所有 Kerberos 票据#可选:删除自动创建的家目录
sudo rm -rf /home/ad-domain.example.com/

三、故障排查

  1. 加域失败
    • 检查/var/log/sssd/sssd.logjournalctl -xe
    • 验证时间同步(NTP):chronyc sources
  2. 用户无法登录
    • 检查SSSD配置中的use_fully_qualified_namesfallback_homedir
    • 确保pam_sss.so在PAM配置中启用(/etc/pam.d/system-auth)。

四、注意事项

  • 权限:加域操作需root权限。
  • 备份:修改关键文件前备份(如/etc/sssd/sssd.conf/etc/krb5.conf)。
  • 安全:域账户权限应遵循最小权限原则。

通过以上步骤,可确保RHEL服务器安全地加入或退出AD域。根据实际环境调整域名和用户组名称。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87554.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87554.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/87554.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙系统(HarmonyOS)4.2 设备上实现无线安装 APK 并调试

在鸿蒙系统&#xff08;HarmonyOS&#xff09;4.2 设备上实现无线安装 APK 并调试的步骤与 Android 类似&#xff0c;但需注意鸿蒙系统的特殊设置。以下是详细操作指南&#xff1a; 鸿蒙系统特殊准备 开启开发者选项&#xff1a; - 设置 > 关于手机 > 连续点击"H…

MyBatis时间戳查询实战指南

在 MyBatis 中通过时间戳&#xff08;Timestamp&#xff09;作为查询条件&#xff0c;需注意数据库时间类型与 Java 类型的映射。以下是具体实现方式&#xff1a; 一、Java 实体类与数据库字段映射 实体类定义 使用 java.sql.Timestamp 或 java.time.LocalDateTime&#xff08;…

【Verilog硬件语言学习笔记4】FPGA串口通信

串口通信是系统设计中比较基部分&#xff0c;其原理其实也很通俗易懂。单次建立通信会传输8个bit&#xff0c;其时序也很简单&#xff0c;这里就不再赘述了。其对应的实例代码如下所示&#xff1b; 首先是接受部分&#xff08;因为我的变量命名也很规范&#xff0c;通俗易懂&a…

Go 语言安装教程(Windows 系统)

2025年07月02日 准备工作 确认系统为 Windows 7 及以上版本&#xff08;推荐 Windows 10/11&#xff09;。64 位系统选择 amd64 版本安装包&#xff0c;32 位系统选择 386 版本。确保安装目录&#xff08;默认 C:\Program Files\Go\&#xff09;有至少 1GB 空间。 下载安装包…

接口测试之postman

一、Postman功能简介 3天精通Postman接口测试&#xff0c;全套项目实战教程&#xff01;&#xff01; Postman是由Postdot Technologies公司打造的一款功能强大的调试HTTP接口的工具。在做接口测试的时候&#xff0c;Postman相当于一个客户端&#xff0c;它可以模拟用户发起的各…

【记录】Ubuntu安装Mysql

本文记录Ubuntu系统下安装Mysql 1 查看系统信息 lsb_release -a 2 使用apt下载安装Mysql 1 打开终端,首先更新你的系统包索引,以确保所有包都是最新的 sudo apt update 2 安装mysql服务器 sudo apt install mysql-server (也可以选择对应的mysql-server 版本) 3 查看mysql状…

【深度学习:进阶篇】--4.1.循环神经网络(改进)

RNN存在的问题&#xff1a;梯度爆炸&#xff0c;长期依赖参数量过大等问题 目录 1.GRU(门控循环单元) 1.1.什么是GRU 1.2.直观理解 1.3.本质解决问题 2.LSTM(长短记忆网络) 2.1.作用 3.结构扩展与效率优化​ 1.GRU(门控循环单元) 2014年&#xff0c;出现的算法&#x…

中心化钱包安全方案

先来看独立的密钥安全技术 1 自建或单租户 CloudHSM 优点&#xff1a;密钥永不出硬件&#xff0c;无法导出&#xff0c;只能对外提供公钥。 交易时&#xff0c;外部应用把消息哈希传进去签名&#xff0c;再把签好名的结果拿出来用。 这种方式安全性拉满&#xff0c;但成本高、…

Android 实现底部弹窗

文章目录在 Android 中创建优雅的底部选项弹窗 (BottomSheetDialogFragment) &#x1f4f1;第一步&#xff1a;设计底部弹窗的布局 &#x1f3a8;第二步&#xff1a;创建 BottomSheetDialogFragment 类 ⚙️第三步&#xff1a;触发并显示底部弹窗 &#x1f680;在 Android 中创…

LAN8720 寄存器概览和STM32 HAL库读写测试

目录 寄存器0x00:Basic Control Register&#xff08;BCR&#xff09;0x01:Basic Status Register&#xff08;BSR&#xff09; 连接测试寄存器读写测试 补充 寄存器 // 0x00:Basic Control Register&#xff08;BCR&#xff09; BIT15:Soft Reset 写1复位&#xff0c;写1之…

渗透测试深度分析:空密码Administrator账户引发的安全风暴

渗透测试深度分析&#xff1a;空密码Administrator账户引发的安全风暴0x01 测试背景 在内网渗透测试中&#xff0c;对Windows主机 192.168.1.98 使用 enum4linux 进行枚举&#xff1a; enum4linux -u Administrator -p -a 192.168.1.98关键发现&#xff1a;Administrator账户空…

OpenCV CUDA模块设备层-----高效地计算两个 uint 类型值的带权重平均值

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 OpenCV 的 CUDA 模块&#xff08;cudev&#xff09; 中的一个设备端内联函数&#xff0c;用于高效地计算两个 uint 类型值的带权重平均值。 该函…

[学习记录]Unity毛发渲染[URP]-Shell基础版

毛发&#xff0c;无论是人类的头发、动物的皮毛&#xff0c;还是奇幻生物的绒毛&#xff0c;都是构成生命感和真实感不可或缺的元素。它对光线的独特散射、吸收和反射&#xff0c;赋予了物体柔软、蓬松、有生命力的质感。它不仅仅是让角色看起来更“毛茸茸”那么简单&#xff0…

数字孪生技术引领UI前端设计潮流:增强现实(AR)的集成应用

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言&#xff1a;AR 与数字孪生融合的设计革新浪潮在体验经济与技术融合的双重驱动下&…

碰一碰发视频源码搭建与定制化开发:支持OEM

在近场通信&#xff08;NFC&#xff09;技术与移动终端深度融合的背景下&#xff0c;“碰一碰发视频” 功能凭借便捷的交互体验&#xff0c;在商业推广、信息传递等场景中快速落地。不同于标准化解决方案的黑盒模式&#xff0c;基于源码的定制化开发能从底层优化传输效率、提升…

Ubuntu 24.04 安装配置 Redis 7.0 开机自启

下载源码 wget https://download.redis.io/releases/redis-7.0.12.tar.gz安装依赖 & 准备环境 sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential tcl curl解压 tar xzf redis-7.0.12.tar.gz编译安装 cd redis-7.0.12 make -j$(nproc) …

【Linux 系统】基础IO——Linux中对文件的理解

13.基础IO(1) 文章目录13.基础IO(1)文件的基本概念&#xff1a;内容与属性文件的打开机制&#xff1a;fopen 和 open被打开的文件与磁盘文件的区别文件的内核数据结构文件与进程的交互方式标准输入/输出/错误与文件流系统调用与文件描述符文件打开模式&#xff08;r/w/a/a&…

Go调度器的抢占机制:从协作式到异步抢占的演进之路|Go语言进阶(7)

想象一下这样的场景&#xff1a;你在餐厅排队等位&#xff0c;前面有个人点了餐却一直霸占着座位玩手机&#xff0c;后面的人只能干等着。这就是Go早期版本面临的问题——一个goroutine如果不主动让出CPU&#xff0c;其他goroutine就只能饿着。 今天我们来聊聊Go调度器是如何解…

开源模型应用落地-让AI更懂你的每一次交互-Mem0集成Qdrant、Neo4j与Streamlit的创新实践(四)

一、前言 在人工智能迅速发展的今天,如何让AI系统更懂“你”?答案或许藏在个性化的记忆管理之中。Mem0作为一个开源的记忆管理系统,正致力于为AI赋予长期记忆与个性化服务能力。通过结合高性能向量数据库Qdrant、图数据库Neo4j的强大关系分析能力以及Streamlit的高效可视化交…

基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot

school-market 介绍 基于微信小程序的校园二手交易平台 功能结构图 软件架构 系统分为三个端&#xff0c;分别是客户端、管理端、服务端&#xff1b; 客户端&#xff1a;使用原生微信小程序实现 管理端&#xff1a;使用Layui实现 服务端&#xff1a;使用Java SpringBoot…