centos8 OPEN LDAP部署

2023-05-16

英文安装文档 比较清晰,不过为了以防万一还是记录一下。

1、安装 openldap openldap-servers

[root@yl08 tools]# yum install openldap openldap-servers -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.bupt.edu.cn
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.bupt.edu.cn
Package openldap-2.4.44-25.el7_9.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openldap-servers.x86_64 0:2.4.44-25.el7_9 will be installed
--> Processing Dependency: libltdl.so.7()(64bit) for package: openldap-servers-2.4.44-25.el7_9.x86_64
--> Running transaction check
---> Package libtool-ltdl.x86_64 0:2.4.2-22.el7_3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

2、安装OpenLDAP Client

[root@yl08 tools]# yum install openldap-clients -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.bupt.edu.cn
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.bupt.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package openldap-clients.x86_64 0:2.4.44-25.el7_9 will be installed
--> Finished Dependency Resolution

3、启动ldap服务,需要注意的是Ldap服务的名称是:slapd 

[root@yl08 tools]# systemctl enable slapd
[root@yl08 tools]# systemctl start slapd
[root@yl08 tools]# systemctl status slapd
● slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-09-30 11:31:17 HKT; 5s ago
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
  Process: 9049 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=0/SUCCESS)
  Process: 9034 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)
 Main PID: 9051 (slapd)

4、修改管理员密码

4.1、生成openldap的管理密码,注意只是生成还没有生效

[root@yl08 tools]# slappasswd
New password: 
Re-enter new password: 
{SSHA}YvElk0m4ZVg2JYYJshXv6cVcYfzC6K8f

   4.2、编写ldif文件(填入上面生成的ssha为olcRootPW密码)

[root@yl08 ldap]# vi a.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW:{SSHA}YvElk0m4ZVg2JYYJshXv6cVcYfzC6K8f #填入上面生成的ssha

 4.3、使ldif文件生效

这里要特殊说明一下,ldap的所有变更都是通过ldif文件来修改的,不要修改任何OpenLDAP装好的配置文件,可能会有不必要的麻烦

那么如何让他生效呢

[root@yl08 ldap]#  ldapadd -Y EXTERNAL -H ldapi:/// -f a.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
ldap_modify: Constraint violation (19)
	additional info: <olcRootPW> extra cruft after <password>

其中 -Y 指定用于身份验证的 SASL 机制

-H  指定uri来代替ldap server ,只允许填写protocol/host/port

-f 指定文件中读取修改信息

5、配置LDAP数据库

[root@yl08 ldap]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@yl08 ldap]# vi /var/lib/ldap/DB_CONFIG 
[root@yl08 ldap]# chown -R ldap:ldap /var/lib/ldap/DB_CONFIG
[root@yl08 ldap]# systemctl restart slapd

导入一些基础的预设scheme:

[root@yl08 ldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"

[root@yl08 ldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"

[root@yl08 ldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"

6、配置openldap的配置

[root@yl08 ldap]# cat chdomain.ldif 


# replace to your own domain name for "dc=***,dc=***" section
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=service,dc=light,dc=cn" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=light,dc=cn

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=service,dc=light,dc=cn

#dn: olcDatabase={2}hdb,cn=config
#changetype: modify
#add: olcRootPW
#olcRootPW: {SSHA}YvElk0m4ZVg2JYYJshXv6cVcYfzC6K8f

dn: olcDatabase={2}hdb,cn=config
changetype: modify
#add: olcAccess
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=service,dc=light,dc=cn" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=service,dc=light,dc=cn" write by * read

这一段大家是不是有种云里雾里的感觉,大家可以看一下如下这个目录内容

[root@yl08 cn=config]# pwd
/etc/openldap/slapd.d/cn=config
[root@yl08 cn=config]# 
[root@yl08 cn=config]# ls
cn=schema  cn=schema.ldif  olcDatabase={0}config.ldif  olcDatabase={-1}frontend.ldif  olcDatabase={1}monitor.ldif  olcDatabase={2}hdb.ldif

是不是一下子顿悟了,没错,dn就是指的这里面的文件名,changetype:操作类型modify

replace|add 等是添加文件里的key,下边是具体内容

然后导入文件即可

[root@yl08 ldap]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"


7、创建基础domain条目的ldif(该段本身并不适用,只是创建组织架构)

7.1、编写基础的domain条目的ldif,加组织架构啦

[root@yl08 ldap]# cat basedomain.ldif 
# replace to your own domain name for "dc=***,dc=***" section
dn: dc=light,dc=cn
objectClass: top
objectClass: dcObject
objectclass: organization
o: light cn
dc: light

dn: cn=service,dc=light,dc=cn
objectClass: organizationalRole
cn: service
description: Service Account

dn: ou=product,dc=light,dc=cn
objectClass: organizationalUnit
ou: product

dn: ou=server,dc=light,dc=cn
objectClass: organizationalUnit
ou: server

dn: ou=client,dc=light,dc=cn
objectClass: organizationalUnit
ou: client

dn: ou=art,dc=light,dc=cn
objectClass: organizationalUnit
ou: art

dn: ou=qa,dc=light,dc=cn
objectClass: organizationalUnit
ou: qa

上图为从其它网站copy过来的ldap目录树,要了解上面这些内容,首先要知道一些ldap的基础设定。

1、entry(条目):上图的所有节点都可称为一个entry

2、dn(Distinguished Name,意为识别名),它表示条目在目录树中从根出发的绝对路径,是条目的唯一标识。可以跟 UNIX 文件系统中文件或目录的完整路径做类比。例如:4.1 的图中右下角的条目的 DN 是 cn=group1,dc=zenandidi,dc=com

3、rdn(Relative Distinguished Name, RDN),相对识别名就是识别名第一个逗号左侧的内容。

可以跟 UNIX 文件系统中文件或目录名做类比。例如:4.1 的图中右下角的条目的 RDN 是 cn=group1

4、CN=Common Name 为用户名或服务器名,最长可以到80个字符,可以为中文;

5、OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文;

6、O=Organization 为组织名,可以3—64个字符长

7、C=Country为国家名,可选,为2个字符长

8、DC (Domain Component)

7.2、导入基础的domain条目文件

[root@yl08 ldap]# ldapadd -x -D cn=service,dc=light,dc=cn -W -f basedomain.ldif 
Enter LDAP Password: 
adding new entry "dc=light,dc=cn"

adding new entry "cn=service,dc=light,dc=cn"

adding new entry "ou=product,dc=light,dc=cn"

adding new entry "ou=server,dc=light,dc=cn"

adding new entry "ou=client,dc=light,dc=cn"

adding new entry "ou=art,dc=light,dc=cn"

adding new entry "ou=qa,dc=light,dc=cn"

 这里要输的密码是ldap的数据库密码,也就是第二个密码

7.3、验证是否正常

[root@yl08 ldap]# ldapsearch -x -b "dc=light,dc=cn" -H ldap://127.0.0.1
# extended LDIF
#
# LDAPv3
# base <dc=light,dc=cn> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# light.cn
dn: dc=light,dc=cn
objectClass: top
objectClass: dcObject
objectClass: organization
o: light cn
dc: light

# service, light.cn
dn: cn=service,dc=light,dc=cn
objectClass: organizationalRole
cn: service
description: Service Account

# product, light.cn
dn: ou=product,dc=light,dc=cn
objectClass: organizationalUnit
ou: product

# server, light.cn
dn: ou=server,dc=light,dc=cn
objectClass: organizationalUnit
ou: server

# client, light.cn
dn: ou=client,dc=light,dc=cn
objectClass: organizationalUnit
ou: client

# art, light.cn
dn: ou=art,dc=light,dc=cn
objectClass: organizationalUnit
ou: art

# qa, light.cn
dn: ou=qa,dc=light,dc=cn
objectClass: organizationalUnit
ou: qa

# search result
search: 2
result: 0 Success

# numResponses: 8
# numEntries: 7

当然,并不建议用脚本创建用户,很麻烦,为了便于管理,可以安装一个phpldapadmin

可以参考:hpLDAPadmin安装及配置使用_松龄的博客-CSDN博客_phpldapadmin   

 8、添加memberof

如果没有这个模块,第三方的组权限将会非常恶心,因为你无法用到ldap的组概念,关于第三方的用户将都会是空组。想想吧,没有默认权限的用户跟没有有什么分别。

添加memberof这个模块并不复杂:

8.1、添加memberof模块

[root@yl08 openldap]# cat add_moudle_group.ldif 
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModulePath: /usr/lib64/openldap

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof.la

dn: olcOverlay=memberof,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember 
olcMemberOfMemberOfAD: memberOf


其中memberof.la一般都会在/usr/lib64/openldap,如果不在,自己搜一下。

8.2 添加refint模块

[root@yl08 openldap]# cat refint1.ldif 
dn: cn=module{0},cn=config
add: olcmoduleload
olcmoduleload: refint

[root@yl08 openldap]# cat refint2.ldif 
dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: refint
olcRefintAttribute: memberof uniqueMember  manager owner

8.3 执行上面的脚本

[root@yl08 openldap]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f  add_moudle_group.ldif 
adding new entry "cn=module,cn=config"

modifying entry "cn=module{0},cn=config"

adding new entry "olcOverlay=memberof,olcDatabase={2}hdb,cn=config"

[root@yl08 openldap]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
modifying entry "cn=module{0},cn=config"

[root@yl08 openldap]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif
adding new entry "olcOverlay=refint,olcDatabase={2}hdb,cn=config"

8.4 添加个组测试一下

[root@yl08 openldap]# cat add_group.ldif 
dn: cn=gitlab-users,ou=Groups,dc=light,dc=cn
cn: gitlab-users
uniquemember: uid=xxx,ou=Users,dc=light,dc=cn
objectClass: groupofuniquenames


[root@yl08 openldap]# ldapmodify -a -H ldap://172.16.60.53:389 -D "cn=service,dc=light,dc=cn" -f add_group.ldif 
adding new entry "cn=gitlab-users,ou=Groups,dc=light,dc=cn"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos8 OPEN LDAP部署 的相关文章

  • dartlang 和 dartdap 库以及与活动目录的连接

    我一直在为 Dart 寻找一个好的 ldap 库来连接 Microsoft Active Directory 我找到了 dartdap 但我似乎无法让它工作 我 100 确信我的 CN 和密码是正确的 因为我可以使用 lpap 浏览器连接到
  • 如何在不检索记录的情况下计算 LDAP 查询匹配的条目数?

    如何在不检索记录的情况下计算 LDAP 查询匹配的条目数 我正在对一大组条目尝试几种不同的 LDAP 过滤器 出于性能原因 我只想知道返回条目的数量 而不是获取全部条目 这可能吗 如何实现 不可以 LDAP 协议不提供计数支持 服务器实现可
  • 如何使用 Grafana 和 Wamp 的 LDAP 身份验证进行单点登录?

    我正在尝试使用 LDAP 为 grafana 添加单点登录 我遇到过LDAP 的 Grafana 文档 http docs grafana org installation ldap 但我不明白 我可以使用 LDAP 获得单点登录功能吗 如
  • 错误:与nodejs程序连接时连接ECONNREFUSED 127.0.0.1:5432 [重复]

    这个问题在这里已经有答案了 我在 CentOS 8 机器上设置了一个 postgresql 服务器 并在同一台机器上运行了一个 js 程序 使用pg图书馆 const Pool require pg const pool new Pool
  • 从 System.DirectoryServices 切换到 DirectoryServices.Protocols 时的身份验证类型

    我需要知道 AuthenticationTypes 中的等效 AuthType 值 才能从 S DS 迁移到 S DS P 代码 我正在重写当前使用 System DirectoryServices 命名空间的 LDAP 连接模块 为了提高
  • LDAP C++ API 选择 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 Linux 下编写自己的 LDAP 客户端 特定于我们的本地环境 我很可能会使用 QT4 来提
  • Apache 目录 LDAP - 分页搜索

    我一直在寻找使用 Apache Directory API 执行分页搜索的信息 但我没有找到任何示例或任何有关如何使用正确的 PagedResults 控件构建 SearchRequest 然后执行搜索的信息 你们有什么建议吗 或者知道哪里
  • 递归查询 LDAP 组成员资格

    我正在编写一个基于 MVC NET 4 0 的网站 该网站需要来自我的公司 LDAP 服务器的登录凭据 我的代码要求的是仅允许属于特定组的用户 例如 我可能正在寻找属于 企业 IT 组的用户 我的凭据可能属于 系统管理员 组 该组是 公司
  • php ldap-bind 密码过期

    我正在使用 adldap 插件连接到 Windows Server AD 但据我所知 我的问题是 php ldap bind 当用户输入不正确的密码时 ldap error 由 adldap 使用 返回的错误是 Invalid Creden
  • 服务定位协议的客户端实现示例? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道可以在 Windows 盒子上构建 运行的服务定位协议的一个很好的示例实现吗 OpenSLP h
  • LdapConnection SearchRequest 抛出对象不存在错误

    我正在尝试查询 LDAP 服务器以查找 LDAP 用户并将其导入到我的系统中 但是 当我尝试执行此操作时 请求会抛出DirectoryOperationException 说The object does not exist ldapCon
  • 为什么 Nginx 以相反的顺序提供客户端 SSL DN?

    我很好奇为什么某些 Web 服务器 例如 Nginx 以相反的顺序提供客户端 SSL DN Web 应用程序将 DN 发布到 Java Web 服务 该服务尝试创建 Javajavax naming ldap LdapName http d
  • LDAP中超时的实现

    我一直在处理我们正在使用的应用程序LDAP获取用户详细信息 有时获取用户详细信息需要更多时间 我想实施time out获取详细信息的方法 以便我们可以避免在最坏的情况下在服务器中挂起事务 这里我们使用的是LdapUtil我们在其中配置的类L
  • 使用 objectGUID 进行查询 - Spring LDAP 模板

    我正在尝试获取 存储并依次使用 objectGUID 来查询 Active Directory 为了获取用户属性我正在使用以下 public static class MyDnKeyValueAttMapper implements Att
  • ldapsearch:凭据无效

    I am trying to authenticate against our institutional LDAP server with the command ldapsearch My user info in LDAP is sh
  • 验证 LDAPS 连接的自签名证书

    我想从 Linux Linux 3 2 0 4 amd64 1 SMP Debian 3 2 51 1 x86 64 GNU Linux 客户端到 Windows 2012 服务器建立安全的 ldap 连接 ldaps 以更改活动中的用户密
  • LDAP 过滤器用于区分名称

    我使用以下代码成功查询 Active Directory 中的用户 filter objectCategory person samaccountname someusername fields array samaccountname m
  • XAMPP 7.0.4 PHP 7 LDAPS 连接无法绑定 LDAP 工作正常

    我通过 LDAP 与域控制器的连接很好 但是当我尝试通过 LDAPS 连接时 它无法绑定 我已经添加了 c OpenLDAP sysconf ldap conf 路径和文件 并尝试按照几个站点的建议将 TLS REQCERT never 添
  • 使用 Novell LDAP 对 .NET Core 中的 AD 进行页面 LDAP 查询

    我正在使用 Novell LDAP 库从 NET 代码应用程序查询 Active Directory 大多数查询都会成功 但有些查询会返回 1000 多个结果 而 AD 服务器会拒绝这些结果 因此 我试图找出如何使用 Novell 的库来分
  • 使用 HttpClient 的 .NET Core SPNEGO 身份验证

    我目前正在编写一个简单的基于 NET Core 的客户端 用于通过 WebHCat 与 Hadoop 集群进行交互 并且我正在尝试弄清楚如何使用 SPNEGO 进行身份验证 就像在curl 或 Powershell Core 等中一样 使用

随机推荐

  • Debian squid配置

    Basic squid conf etc squid3 squid conf instead of the super bloated default config file auth param basic program usr lib
  • Linux安装mysql以及遇到的问题解决办法

    话不多说 xff0c 直接开干 xff1a 1 mysql下载地址 xff08 这里使用的是5 7 28 xff09 官网地址 xff1a https dev mysql com downloads mysql 百度云地址 xff1a ht
  • kali-linux的搭建

    vmware kali的搭建 使用vmware搭建kali需要有kali的官方镜像 xff0c 这里给出镜像的下载地址 https mirrors tuna tsinghua edu cn kali images kali 2022 3 k
  • C++学习(一三零)规范路径canonical paths

    每个文件都只有一个规范路径 xff0c 可以有多个绝对路径和相对路径 绝对路径与系统相关 如果路径中别名 快捷方式 符号链接等内容 xff0c 规范路径都会将他们解析到实际的文件路径下
  • 树莓派4B外接电视机没反应的问题的解决

    解决办法 xff0c 修改文件 boot config txt
  • 宇宙射线 c++ || DFS

    题目 一个射线 xff0c 初始方向向上 一段时间后会分裂 xff0c 向该方向的左右45度分裂2条射线 宇宙射线会分裂那次 xff0c 每次会前进ai个单位长度 输入描述 第一行一个正整数 n n lt 61 30 表示分裂n次 第二行包
  • DDL 的恐惧 || 贪心

    题目 ZJM 有 n 个作业 xff0c 每个作业都有自己的 DDL xff0c 如果 ZJM 没有在 DDL 前做完这个作业 xff0c 那么老师会扣掉这个作业的全部平时分 所以 ZJM 想知道如何安排做作业的顺序 xff0c 才能尽可能
  • TT's Magic Cat -- 差分

    题意 TT 有一只猫 xff0c 它从 世界地图 选了 n 个城市 xff0c 用 ai 表示每个城市的资产 猫会给出几个操作 xff0c 区间 l r 的城市资产都加 c 在q次操作后 xff0c 输出所有城市的资产 Input 第一行有
  • 平衡字符串 c++ || 尺取法

    题目 一个长度为 n 的字符串 s xff0c 其中仅包含 Q W E R 四种字符 如果四种字符在字符串中出现次数均为 n 4 xff0c 则其为一个平衡字符串 现可以将 s 中连续的一段子串替换成相同长度的只包含那四个字符的任意字符串
  • 掌握魔法の东东 II Gym-270437

    题目 从瑞神家打牌回来后 xff0c 东东痛定思痛 xff0c 决定苦练牌技 xff0c 终成赌神 xff01 东东有 A B 张扑克牌 每张扑克牌有一个大小 整数 xff0c 记为a xff0c 范围区间是 0 到 A 1 xff09 和
  • week 13 程序设计 必做题

    A TT 的神秘任务1 xff08 必做 xff09 Example Input span class token number 8 span span class token number 10 span span class token
  • VS2019配置wxWidgets v3.1.5开发环境

    编译wxWidgets库 如果只是使用wxWidgets DLL库可以省略编译这一步 xff0c 直接下载编译好的库 http wxwidgets org downloads 点击 34 Download Windows Binarires
  • 「LOJ#10015」「一本通 1.2 练习 2」扩散(并查集

    题目描述 一个点每过一个单位时间就会向 444 个方向扩散一个距离 xff0c 如图所示 xff1a 两个点 a b 连通 xff0c 记作 e a b xff0c 当且仅当 a b的扩散区域有公共部分 连通块的定义是块内的任意两个点 u
  • haproxy使用技术及配置详解

    以下内容来源于网络 xff0c 感谢原作者 性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化 单进程 事件驱动模型显著降低了上下文切换的开销及内存占用 O 1 事件检查器 event checker 允许其在高并发连接中对任
  • Edge浏览器,找不到本地书签或收藏夹更新时丢失了,我该怎样找回?

    1 不要着急 xff0c 可以通过以下目录找回 Edge浏览器的书签 xff0c 保存地址 xff0c 在最新版本必然保存在以下位置 xff1a C Users 用户名 AppData Local Packages Microsoft Mi
  • ubuntu系统实现远程控制

    今天在做实验的时候发现用视觉模拟激光竟然用之前的远程启动不了节点 xff08 之前是用工作站连接turtlebot上面的TK1的 xff09 xff0c 然后最后还是用了俩台电脑进行远程控制 xff0c 用到了一点小配置 xff0c 在这里
  • C++11多线程并发中的std::thread、std::mutex和std::future

    C 43 43 11 新标准中引入了五个头文件来支持多线程编程 xff1a lt atomic gt lt thread gt lt mutex gt lt condition variable gt 和 lt future gt lt a
  • 银河麒麟操作系统以root用户登录的方法

    默认情况下 xff0c 银河麒麟V10操作系统不允许root用户登录 xff0c 也不告诉你密码是什么 xff0c 但是如果需要root用户登录的时候 xff0c 可以使用命令 xff1a su 输入密码后 xff0c 就能进入root用户
  • 安装卸载EMBY,jellyfin

    这是个回忆记录 xff0c 怕时间久了忘记了 xff0c 记录可能不太全 环境是 xff1a UNAS xff0c debian xff0c 1 安装emby xff0c 去官网下载emby deb 用命名安装 安装后访问正常 卸载就麻烦了
  • centos8 OPEN LDAP部署

    英文安装文档 比较清晰 xff0c 不过为了以防万一还是记录一下 1 安装 openldap openldap servers root 64 yl08 tools yum install openldap openldap servers