理解ldap - 什么是ldap

什么是目录服务? ==目录是一类为了浏览和搜索数据而设计的特殊的数据库==,例如:为人所熟知的微软公 司的活动目录(active directory)就是目录数据库的一种,目录服务是按照==树状形式==存储信息的,目录包含基于属性的描述性信息,并且支持高级的过滤功能。 http://www.openldap.org/doc/admin24/intro.html 一般来说,目录不支持大多数事务型数据库所支持的高吞吐量和复杂的更新操作。目录进行更新操作,可以说是要么全部,要么都不的原子操作。目录服务适合的业务应用在于提供大量的查询和搜索操作,而不是大量的写入操作。Ldap可以说是活动目录在linux系统上的一个开源实现。 为了保证目录数据的可用性和可靠性,在确保使用目录服务提供快速查询和搜索操作的同时,目录服务还提供了==主从服务器同步目录数据信息的能力==,这相当于传统的MySQL数据库的主从同步功能一样,可以最大限度的确保基于目录业务的服务持续可用性与提供并发查询能力,微软公司的活动目录(active directory)就有主域和备份域的说法。 广义的目录服务概念,可以用多种不同的方式来提供目录服务。不同的目录所允许存储的信息是不同的,在信息如何被引用、查询、更新以及防止未经授权的访问等问题上,不同的目录服务的处理方式也有诸多的不同。 例如:一些目录服务是本地的,只提供受限的服务(比如,单机上的finger服务)。另一些服务是大范围的(global),提供广阔得多的服务(比如面向整个因特网),大范围的服务通常是分布式的,这也就意味着数据是分布在多台机器上的,这些机器一起来提供目录服务,典型的大范围服务定义一个统一的名称空间(namespace)来给出一个相同的数据视图(data view),而不管你相对于数据所在的位置。DNS是一个典型的大范围分布式目录服务的例子。 http://www.openldap.org/faq/data/cache/595.html 什么是ldap? 目录服务有两个国际标准,分别是X.500和LDAP。X.500是ITU定义的目录标准,而LDAP是基于TCP/IP的目录访问协议,是Intemet上目录服务的通用访问协议。 LDAP是 Lightweight Directory Access Protocol(轻量级目录访问协议)的缩写。正如它的名字所表明的那样,它是一个轻量级的目录访问协议,特指基于X.500的目录访问协议的简化版本。LDAP运行在 TCP/IP 或者其他的面向连接的传输服务之上。LDAP完整的技术规范由RFC2251“The Lightweight Directory Access Protocol(v3)”和其他几个在RFC3377中定义的文档组成。 LDAP是轻量目录访问协议(Lielhtweiglht Directory Access Protocol)的缩写。 LDAP标准实际上是在X.500标准基础上产生的一个简化版本。 什么是X.500? X.500由ITU-T和ISO定义,它实际上不是一个协议,而是由一个==协议族==组成,包括了从X.501到X.525等一系列非常完整的目录服务协议。 从技术上来说,LDAP是一个到X.500目录服务的目录访问协议,X.500是一个OSI目录服务。最初,LDAP客户端通过网关访问X.500目录服务。网关在客户端和网关之间运行LDAP,而X.500目录访问协议(Directory Access Protocol,DAP),位于这个网关和X.500服务器之间。 LDAP是一个重量级的协议,在整个OSI协议栈上进行操作,而且需要占用大量的计算资源。而LDAP被设计为在TCP/IP层上操作,以小得多的代价实现了大多数LDAP的功能。 虽然LDAP仍旧可以通过网关访问X.500目录服务器,但是现在通常都是在X.500服务器上直接实现LDAP。 单独的LDAP守护程序openldap slapd,可以被看做是一个轻量级的X.500目录服务器。也就是说,它没有实现X.500完整的DAP协议。作为一个轻量级的目录服务器,slapd实现的仅仅是X.500模型的一个子集。 LDAP中的常用名词缩写及含义。 LDAP基本概念中的常用名词缩写及含义 关 键字 英文全称 含 义 dc Domain Component 城名的部分,其格式是将完整的城名分成几部分,如域名为exaple.com变成dc=exaple,dc=com uid User Id 用户ID,如 “oldboy”。 ou Organization Unit 组织单位,类似于Limux文件系统中的子目录,它是一个容器对象,组织单位可以包含其他各种对象(包括其他组织单元),如“tech,rongjunfeng,bingge” cn Common Name 公共名称,如 “Thowas Johansson” sn Surnase 姓,如 “Johansson” dn Distinguished Name 唯一辨别名,类似于Linux文件系统中的绝对路径,每个对象都有一个唯一的名称,如uid=tos,ou=market,dc=example,dc=com,在一个目录树中 总是唯一的。 rdn Relative dn 相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如uid=tom或cn=Thoeas Johansscn。 c Country 国家,如“CN”或“US”等 o organizatione 组织名,如“Example,Inc....

 ·  · 

Unix归档模式 cpio - 深入剖析与构建rpm包

RPM概述 RPM (Red Hat Package Manager),几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装、更新和卸载软件。对于最终用户来说,使用RPM所提供的功能来维护系统是比较容易和轻松的。安装、卸载和升级RPM软件包只需一条命令就可以搞定。RPM维护了一个所有已安装的软件包和文件的数据库,可以让用户进行查询和验证工作。在软件包升级过程中,RPM会对配置文件进行特别处理,绝对不会丢失以往的定制信息。对于程序员RPM可以让我们连同软件的源代码打包成源代码和二进制软件包供最终用户使用。 一般而言制作一个RPM包包含以下几个步骤 计划你想要建立什么 收集软件包 根据需要修补软件 计划升级旧有的包 创建可重现的软件构建 概述任何依赖关系 构建rpm 测试rpm(能否安装、升级) RPM capability 能力 运行或安装需要依赖于其他的RPM包本身或所提供的文件为基础的现象被称之为依赖关系。但在制作RPM包时,依赖关系有两类编译依赖与安装依赖。 自身名字所包含的意义 它提供的文件也有可能被其他软件所依赖,文件本身也能识别成一种能力 编译依赖和安装依赖 每一个RPM包都提供一种能够完成任务的功能,此种能力很可能被其他RPM所依赖,此能力大多数情况下和RPM名字是相同的。 制作RPM包的纲要有如下四部 设定RPM包制作的目录结构(制作车间) 将原材料(源码包、配置文件、补丁包)放置规划好的目录当中。 创建spec文件,指挥如何使用原材料将其制作成rpm包。 编译源代码生成rpm包 在一个特定的目录中提供如下5个子目录 redhat上默认在/usr/src/reahat BUILD 源代码解压以后放置的位置,仅需提供目录。 RPMS 放置制作完成后的RPM包 SOURCES 原材料放置目录(配置文件、源码包、补丁包) SPECS 放置spec文件(纲领性文件)的。 SRPMS SRC rpm包存放位置 RPM优缺点 优点: 集中管理:RPM可以集中管理安装、升级和删除软件包,保证系统的干净和稳定。 精确控制:RPM提供详细的软件包信息,可以对软件包的安装路径、依赖关系、版本等进行精确控制,使得软件安装更加灵活便捷。 简单易用:RPM提供了一套完整的命令行工具和图形化管理工具,对于普通用户来说,使用起来非常方便。 更新机制:RPM可以根据用户需要进行更新,包括安全更新、功能更新和修复错误等,可以更好地保证系统安全与稳定性。 缺点: 依赖管理:RPM虽然可以管理软件包的依赖关系,但其解决依赖的方式容易出现问题,可能会出现某些软件包的依赖关系无法解决的情况。 更新速度:由于需要对软件包进行依赖检查等操作,升级软件包可能需要较长时间,特别是当软件包依赖比较复杂时。 存在问题:有时候使用RPM安装的软件包出现问题,需要手动卸载并重新安装,这会导致一些无法预测的麻烦。 兼容性:RPM采用了特定的软件包管理标准,要求安装的软件包必须符合这些标准。因此,RPM可能不太适用于其他Linux系统或自定义的软件包格式。 SPEC文件 制作RPM软件包的关键在于编写SPEC软件包描述文件。要想制作一个rpm软件包就必须写一个软件包描述文件(SPEC)。这个文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要包含的文件列表等等。 SPEC文件通常包括以下几个部分: 头文件:包括软件包的名称、版本、发布号、授权等信息。 %description:包括软件包的描述、依赖关系、构建环境等信息。 %prep:指定源代码的来源和如何解压缩及准备源代码。 %build:指定如何编译源代码。 %install:指定如何安装编译好的软件包。 %check:指定测试源代码的特定部分,通常是用来运行单元测试。 %clean:指定清除构建过程中产生的临时文件和目录的方法。 %files:指定哪些文件应该包括在最终的RPM文件中。 %changelog:记录软件包的变更历史。 SPEC文件中常用的宏变量 宏变量 说明 %{name} 软件包的名称,如 myapp。 %{version} 软件包的版本号,如 1....

 ·  · 

SSH客户端应用场景

SSH命令详解 参数 说明 -1 强制使用ssh协议版本1; -2 强制使用ssh协议版本2; -4 强制使用IPv4地址; -6 强制使用IPv6地址; -A 开启认证代理连接转发功能; -a 关闭认证代理连接转发功能; -b 使用本机指定地址作为对应连接的源ip地址; -C 请求压缩所有数据; -F 指定ssh指令的配置文件; -f 后台执行ssh指令; -g 允许远程主机连接主机的转发端口; -i 指定身份文件; -l 指定连接远程服务器登录用户名; -N 不执行远程指令; -o 指定配置选项; -p 指定远程服务器上的端口; -q 静默模式; -X 开启X11转发功能; -x 关闭X11转发功能; -y 开启信任X11转发功能。 -D 指定本地 “动态” 应用程序级端口转发。这通过分配套接字来侦听本地端口,可选地绑定到指定的bind_address。只要与此端口建立连接,就会通过安全通道转发连接,然后使用应用程序协议确定从远程计算机连接的位置。 SSH端口转发实战 概述 在通常情况下,网络防火墙会阻碍你进行某些必要的网络传输。公司的安全策略可能不允许你把SSH密钥存储在某些主机上。或者,你也可能需要在原本安全的环境中运行一些不安全的网络应用程序。 SSH提供了一个重要功能,称为转发forwarding或者称为隧道传输tunneling,它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做tunneling,这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。 SSH端口转发主要用来解决如下两方面问题: 突破防火墙的限制完成无法建立的 TCP 连接。 加密 Client 端至 Server 端之间的通讯数据。 开启ssh的端口转发功能 ssh端口转发功能默认是打开的。如需修改的话,修改后需要重启sshd服务才会生效。...

 ·  · 

同步工具rsync使用指南

Overview 官方网站:https://www.samba.org/ftp/rsync/rsync.html rsync特性 rsync类似于scp的功能 rsync还可以在本地的不同分区和目录之间进行全量及增量的复制数据,类似cp又优于cp rsync可以实现文件的删除 一个rsync相当于 scp cp rm,但是还优于他们每一个 支持拷贝特殊文件如链接文件,设备等 可以有排除指定文件或目录的权限、时间、软硬链接、属主、组所有属性均不改变-p 可以有排除指定文件或目录的功能,相当于打包命令tar的排除功能 可以实现增量同步,即只同步发生变化的数据,因此数据传输效率很高tar。 可以使用rcp rsh ssh等方式来配合传输文件(rsync本身不对数据加密) 可以通过socket(进程方式)传输文件和数据 支持匿名的或认证(无须系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像 安装rsync linux上安装rsync Platform Command Debian/Ubuntu & Mint sudo apt-get install rsync Arch Linux pacman -S rsync Gentoo emerge sys-apps/rsync Fedora/CentOS/RHEL and Rocky Linux/AlmaLinux sudo yum install rsync openSUSE sudo zypper install rsync windows安装rsync 官网下载cwRsync的服务端和客户端软件,cwRsync官网为:www.itefix.net/cwrsync Notes:由于伟大的 people‘s leader president xi 网站已经无法中国地区访问(点击测试),伟大的俄罗斯因为俄乌战争,也不对俄罗斯访问了(俄乌战争开始后,西方大量学术网站禁止了俄罗斯地区的访问) 所以目前只能下载到一些镜像站上4.x版本,截止到2022年11月的6.2.7相差很多,windows客户端版本可以通过chocolate 安装 rsync使用说明 rsync命令语法 选项 注释说明 rsync rsync同步命令 option 为同步时的选项参数 src 为源,及待拷贝的分区、文件或目录等 dest 为目标分区、文件或目录等 rsync参数说明...

 ·  · 

使用fpm制作rpm包与搭建本地yum源

rpm与fpm 软件的安装方式 编译安装:优点是可以定制化安装目录、按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长 yum安装:优点是全自动化安装,不需要为依赖问题发愁,缺点是自主性太差,软件的功能、存放位置都已经固定好了,不易变更。 编译源码:根据自己的需求做成 RMP包 ==> 搭建yum仓库 ==> yum安装。结合前两者的优点,暂未发现什么缺点。可能的缺点就是RPM包的通用性差,一般人不会定制RPM包。 RPM概述 RPM全称是Red Hat Package Manager(RedHat包管理器)。几乎所有的Linux发型版本都使用这种形式的软件包管理安装、更新和卸载软件。 rpm命令有5种基本功能(不包括创建软件包):安装、卸载、升级、查询和验证。 关于rpm命令的使用可以用rpm –help来获得 rpmbuild rpmbuild是reahat系的原声打包命令,这个命令的使用难点主要在于spec文件编写,一个类似于kickstart的ks.cfg文件。 作为一个使用工具,种种繁琐,在没有替代品时还能存活。当有了其他简易工具时,他就到了完蛋的时候 fpm fpm 是将一种类型的包转换成另一种类型 支持的源类型包 类型 说明 dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm 对rpm进行转换 gem 对rubygem包进行转换 python 将python模块打包成相对应的类型 支持目标类型包 rpm 转换为rpm包 deb 转换为deb包 solaris 装环卫solaris包 puppet 转换为puppet模块 fpm安装 fpm是ruby写的,因此系统环境需要ruby,而且ruby版本号大于bshards运行的版本。 yum安装ruby模块 bash 1 yum install ruby rubygems ruby-devel -y 查看ruby的版本 bash 1 2 3 4 5 6 7 $ rpm -qa|grep ruby ruby-libs-1.8.7.374-4.el6_6.x86_64 rubygems-1.3.7-5.el6.noarch ruby-1....

 ·  ·