#!/tools/cfr/bin/perl
#this is a module that will find user's mailbox using UID:
#contact bobo5620301@163.com
#8/17/2012
sub get_mailaddress{
use Net::LDAP;
$LDAPServer = 'ldap.lsil.com';
#$argString = join("*", @ARGV);
my $ldap = Net::LDAP->new("$LDAPServer") or die "$@";
$ldap->bind ; # an anonymous bind
$mesg = $ldap->search ( # perform a search
base => "ou=lsil.com,o=lsi logic",
filter => "| (uid=*$uid*) $extraFilter ",
attrs => ['mail'],
);
$mesg->code && die $mesg->error;
my $max = $mesg->count;
for ($i =0; $i < $max; $i++) {
my $entry = $mesg->entry($i);
# build an array of attributes
foreach my $attr ($entry->attributes) {
print $entry->get_value($attr),"\n";
}
}
$ldap->unbind; # take down session
exit;
}
$uid="ricwang";
& get_mailaddress ($uid);
-
fanqinghui - linux -ldap 系统 IT基础设施 - 组成 - 搭建- 使用
2020-12-28 16:24:05# fanqinghui linux LDAP 整套系统 # 系统版本centos7 部分应用使用的容器 比如 habor # 核心OpenLDAP + 自助修改密码系统Self Service Password # 容器仓库:harbor # 代码仓库gitlib # 文件共享系统...# fanqinghui linux LDAP 整套系统
# 系统版本centos7 部分应用使用的容器 比如 habor ,
LDAP-LAM管理界面搭建,推荐:https://blog.51cto.com/nanfeibobo/2119719
ldap 文章:https://www.cnblogs.com/lemon-le/p/6266921.html
LDAP介绍推荐:https://www.cnblogs.com/woshimrf/p/ldap.html
ldap+self passwd : https://www.ilanni.com/?p=13822
0 JIRA :https://www.cnblogs.com/yangchangsong/p/11369403.html
- # 核心 OpenLDAP + 自助修改密码系统Self Service Password 使用lam管理LDAP:https://my.oschina.net/37Y37/blog/1863182 LDAP和sso单点登录 一篇文章就够了:https://blog.csdn.net/weixin_43871678/article/details/112757966
- # 容器仓库:harbor # 安装教程:https://www.cnblogs.com/huanglingfa/p/13764600.html
- 使用教程:https://www.cnblogs.com/zll-0405/p/10786565.html 常用命令:
echo '{ "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ], "insecure-registries": [ "harbor.xxx.com.cn" ] }' > /etc/docker/daemon.json systemctl daemon-reload #应用配置 systemctl restart docker #重启docker docker login # 输入账号密码 docker pull harbor.xxx.com.cn/xiandai-cloud/web-sso # 加上网址拉取镜像 # 接下来用commit参数进行保存镜像, -a 提交人的姓名 -m “提交内容”,格式如:docker commit -a -m 现有容器ID 保存后的名称:版本号 docker commit -a "tmf" -m "tmf-web" 7740db56288a tmf-web:v20191123 docker save -o xxx.tar xxximage # 如果有grafana.tar 就load docker load -i grafana6-7-2.tar docker tag 322e0a666176 grafana6.7.2:v001 # 修改images 给个名字 docker tag grafana6.7.2:v001 harbor.hi-ins.com.cn/test/grafana6.7.2 # 先给镜像命名tag一下 docker push harbor.hi-ins.com.cn/test/grafana6.7.2 # 前面 docker login之后别跟fanqinghui 重复登陆就可以
- # 代码仓库gitlib 参考文章:https://blog.csdn.net/yanglinna/article/details/104293436/
# 拉取镜像 docker pull beginor/gitlab-ce:11.0.1-ce.0 # 创建三个目录 mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data #进入目录后启动 cd /mnt/gitlab/etc/ docker run --detach --publish 8443:443 --publish 8090:80 --name gitlab --restart unless-stopped -v /mnt/gitlab/etc:/etc/gitlab -v /mnt/gitlab/log:/var/log/gitlab -v /mnt/gitlab/data:/var/opt/gitlab beginor/gitlab-ce:11.0.1-ce.0 # 启动完需要重新编译配置文件 停止容器 删除容器重新启动 vi /mnt/gitlab/etc/gitlab.rb vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml docker stop id docker rm id docker run --detach --publish 8443:443 --publish 8090:80 --name gitlab --restart unless-stopped -v /mnt/gitlab/etc:/etc/gitlab -v /mnt/gitlab/log:/var/log/gitlab -v /mnt/gitlab/data:/var/opt/gitlab beginor/gitlab-ce:11.0.1-ce.0
实体机器安装: https://blog.csdn.net/bloodzer0/article/details/106809701 下面是fanqinghui的gitlab配置:
cat > /etc/gitlab/gitlab.rb << EOF #修改访问URL #格式:external_url 'http://ip:端口' external_url 'http://10.69.15.20' #配置时区 gitlab_rails['time_zone'] = 'Asia/Shanghai' #1539-git config gitlab_rails['gitlab_default_can_create_group'] = false gitlab_rails['object_store']['enabled'] = false gitlab_rails['object_store']['connection'] = {} gitlab_rails['object_store']['proxy_download'] = false gitlab_rails['object_store']['objects']['artifacts']['bucket'] = nil gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = nil gitlab_rails['object_store']['objects']['lfs']['bucket'] = nil gitlab_rails['object_store']['objects']['uploads']['bucket'] = nil gitlab_rails['object_store']['objects']['packages']['bucket'] = nil gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = nil gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = nil gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' main: # 'main' is the GitLab 'provider ID' of this LDAP server label: 'LDAP' host: '10.69.15.39' port: 389 uid: 'uid' bind_dn: 'cn=admin,dc=hi-ins,dc=com,dc=cn' password: 'xiandai@2020' encryption: 'plain' # "start_tls" or "simple_tls" or "plain" verify_certificates: true smartcard_auth: false active_directory: true allow_username_or_email_login: false lowercase_usernames: false block_auto_created_users: false base: 'dc=hi-ins,dc=com,dc=cn' user_filter: '' name: 'sn' EOS gitlab_rails['backup_path'] = "/root/code/gitbak" git_data_dirs({ "default" => { "path" => "/root/code/gitdata" } }) unicorn['worker_timeout'] = 60 unicorn['worker_processes'] = 10 unicorn['worker_memory_limit_min'] = "200 * 1 << 20" unicorn['worker_memory_limit_max'] = "300 * 1 << 20" sidekiq['max_concurrency'] = 20 sidekiq['min_concurrency'] = 2 postgresql['shared_buffers'] = "256MB" postgresql['max_worker_processes'] = 8 prometheus['enable'] = false EOF gitlab-ctl reconfigure gitlab-ctl restart
- # 文件共享系统 Confluence :https://blog.csdn.net/weixin_41282397/article/details/86138069
- # 接口文档管理平台 yapi
- # 项目构建 jenkins # 参考我的文件 https://blog.csdn.net/yuezhilangniao/article/details/111238786
- # maven仓库 nexus-maven
- # dns服务器 :dnsmasq + nginx
-
LDAP 系统用户uid 查找用户邮箱地址
2012-08-17 11:59:47#!/tools/cfr/bin/perl #this is a module that will find user's mailbox using UID: #contact bobo5620301@163.com #8/17/2012 ...sub get_mailaddress{ ...use Net::LDAP;...$LDAPServer = 'ldap....转载于:https://blog.51cto.com/bobo5620301/965550
-
使用OpenDs建立LDAP系统认证
2007-12-20 17:06:00手头的项目要使用LDAP做系统权限认证,用到了OpenDs。刚刚接触,还有待以后进一步的认识。OpenDs下载地址:https://opends.dev.java.net/LDAP查询分析软件下载地址:http://www.ldapadministrator.com/sun已经有...手头的项目要使用LDAP做系统权限认证,用到了OpenDs。刚刚接触,还有待以后进一步的认识。
OpenDs下载地址:https://opends.dev.java.net/
LDAP查询分析软件下载地址:http://www.ldapadministrator.com/
sun已经有OpenSSO了,为什么另起炉灶弄了个开源的OpenDs,我还真是不太清楚。不过,从另一个侧面看得出sun开源的决心了。
OpenDs安装请参阅:http://sdc.sun.co.jp/javasystem/techtopics/identity/200707.html
关于LDAP资料:
-
LDAP-账号管理系统
2019-12-12 16:02:18LDAP-账号管理系统LDAP-账号管理系统添加用户导入ldap数据库生成基本框架:生成用户和组的数据文件:配置客户端 ldap-client在ldap-server配置NFS,共享ldap用户的家目录应用场景应用1:ssh应用2:vsftpd应用3:...LDAP-账号管理系统
LDAP-账号管理系统
在centos7环境,搭建ldap-server:
## 1. 部署ldap-S [root@ldapS ~]# yum install -y openldap openldap-servers openldap-clients openldap-devel migrationtools 首先 生成加密密码: [root@ldapS ~]# slappasswd New password: Re-enter new password: {SSHA}nuH+UiLFv78g87XL3zybnwK/WjeTWU/n 将dc=do-main 改为 dc=sgy(自定义名) [root@ldapS /etc/openldap/slapd.d/cn=config]# vim olcDatabase\=\{1\}monitor.ldif 7 al,cn=auth" read by dn.base="cn=Manager,dc=sgy,dc=com" read by * none ##增加管理员信息,自定义第一个dc= 将dc=do-main 改为 dc=sgy(自定义名) [root@ldapS /etc/openldap/slapd.d/cn=config]# vim olcDatabase\=\{2\}hdb.ldif 8 olcSuffix: dc=sgy,dc=com ##基准DN 9 olcRootDN: cn=Manager,dc=sgy,dc=com ##管理员用户的DN 19 olcRootPW:{SSHA}nuH+UiLFv78g87XL3zybnwK/WjeTWU/n # 添加这行,设置之前生成的密码 ##管理员用户的密码 准备数据库初始文件: [root@ldapS /var/lib/ldap]# cp /usr/share/openldap-servers/DB_CONFIG.example . [root@ldapS /var/lib/ldap]# mv DB_CONFIG.example DB_CONFIG 给当前目录设置权限 . [root@ldapS /var/lib/ldap]# chown -R ldap:ldap . <---这有个点 [root@ldapS ~]# systemctl start slapd [root@ldapS ~]# systemctl enable slapd [root@ldapS ~]# netstat -antpl | grep slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1133/slapd tcp6 0 0 :::389 :::* LISTEN 1133/slapd 将配置加入数据库的schemas(模式)中: [root@ldapS ~]# lftp 172.16.0.99 lftp 172.16.0.99:~> cd scripts/ lftp 172.16.0.99:/scripts> get add_config-to_ldif.sh [root@ldapS ~]# chmod +x add_config-to_ldif.sh [root@ldapS ~]# ./add_config-to_ldif.sh 没有报错就可以。
添加用户
写个脚本,添加10个用户: [root@ldapS ~]# vim useradd.sh #!/bin/bash # 添加10个用户 if [ ! -d /ldaphome ] then mkdir /ldaphome fi echo -e "username\tpassword" > /root/userfile for i in `seq 1 10` do id ldap${i} &> /dev/null if [ $? -ne 0 ] then useradd ldap${i} -d /ldaphome/ldap${i} pass=$(tr -dc a-zA-Z0-9_# < /dev/urandom | head -c 6 | xargs) echo $pass | passwd --stdin ldap$i &> /dev/null echo -e "ldap${i}\t${pass}" >> /root/userfile fi done [root@ldapS ~]# cat userfile username password ldap1 #2cutH ldap2 nhdVZj ldap3 VwDhB_ ldap4 vqnyTj ldap5 J_lYiM ldap6 lZSBap ldap7 WgC6#G ldap8 IObNFD ldap9 _mVFFV ldap10 IGveyi [root@ldapS ~]# tail /etc/passwd [root@ldapS ~]# tail /etc/shadow
导入ldap数据库
将这10个用户的信息,导入到ldap数据库里: [root@ldapS ~]# cd /var/lib/ldap/ [root@ldapS /var/lib/ldap]# ls == /var/lib/mysql [root@ldapS ~]# tail /etc/passwd > /tmp/passwd [root@ldapS ~]# tail /etc/shadow > /tmp/shadow [root@ldapS ~]# tail /etc/group > /tmp/group 编辑配置文件: [root@ldapS ~]# cd /usr/share/migrationtools/ [root@ldapS /usr/share/migrationtools]# ls migrate_common.ph文件主要是用于生成ldif文件使用 [root@ldapS /usr/share/migrationtools]# vim migrate_common.ph 61 $NAMINGCONTEXT{'group'} = "ou=Groups"; 71 $DEFAULT_MAIL_DOMAIN = "sgy.com"; 74 $DEFAULT_BASE = "dc=sgy,dc=com"; 90 $EXTENDED_SCHEMA = 1; [root@ldapS /usr/share/migrationtools]# vim migrate_passwd.pl 188 open(SHADOW, "/tmp/shadow") || return;
生成基本框架:
[root@ldapS /usr/share/migrationtools]# ./migrate_base.pl > /tmp/base.ldif 编辑配置文件,只保留sgy(自定义的dc),People,Groups,其它都删除。 [root@ldapS /usr/share/migrationtools]# vim /tmp/base.ldif dn: dc=sgy,dc=com dc: sgy objectClass: top objectClass: domain objectClass: domainRelatedObject associatedDomain: sgy.com dn: ou=People,dc=sgy,dc=com ou: People objectClass: top objectClass: organizationalUnit objectClass: domainRelatedObject associatedDomain: sgy.com dn: ou=Groups,dc=sgy,dc=com ou: Groups objectClass: top objectClass: organizationalUnit objectClass: domainRelatedObject associatedDomain: sgy.com
生成用户和组的数据文件:
[root@ldapS /usr/share/migrationtools]# ./migrate_passwd.pl /tmp/passwd > /tmp/user.ldif [root@ldapS /usr/share/migrationtools]# ./migrate_group.pl /tmp/group > /tmp/group.ldif == xxx.sql 将这3个ldif文件,导入数据库: [root@ldapS ~]# ldapadd -x -W -D "cn=Manager,dc=sgy,dc=com" -f /tmp/base.ldif Enter LDAP Password: adding new entry "dc=sgy,dc=com" adding new entry "ou=People,dc=sgy,dc=com" adding new entry "ou=Groups,dc=sgy,dc=com" -x 进行认证 -W 输入密码 -D 绑定服务器的基准DN -f 使用的ldif文件 cn=Manager,dc=sgy,dc=com ldap的管理员用户 输入的密码:生成的加密密码 [root@ldapS ~]# ldapadd -x -W -D "cn=Manager,dc=sgy,dc=com" -f /tmp/user.ldif [root@ldapS ~]# ldapadd -x -W -D "cn=Manager,dc=sgy,dc=com" -f /tmp/group.ldif 查看用户的信息: [root@ldapS ~]# ldapsearch -xWD "cn=Manager,dc=sgy,dc=com" -b "uid=ldap1,ou=People,dc=sgy,dc=com" -LLL Enter LDAP Password:
配置客户端 ldap-client
ldap-client [root@node1 ~]# yum install -y nss-pam-ldapd pam_krb5 setuptool [root@node1 ~]# setup
配置完成后,开启xshell,用ldap用户访问ldap-client[c:\~]$ ssh ldap1@172.16.0.61 -bash-4.2$ -bash-4.2$ su - 没有家目录 Password: [root@node1 ~]#
在ldap-server配置NFS,共享ldap用户的家目录
在ldap-server配置NFS,共享ldap用户的家目录: [root@ldapS ~]# yum install -y nfs-utils [root@ldapS ~]# vim /etc/exports /ldaphome 172.16.0.0/16(rw,sync) [root@ldapS ~]# systemctl start nfs [root@ldapS ~]# systemctl enable nfs 在ldap-client,配置autofs,自动挂载nfs的共享: [root@node1 ~]# yum install -y nfs-utils autofs [root@node1 ~]# showmount -e 172.16.0.60 Export list for 172.16.0.60: /ldaphome 172.16.0.0/16 [root@node1 ~]# mkdir /ldaphome [root@node1 ~]# cp /etc/auto.misc /etc/auto.ldap <--auto.misc文件是autofs生成的 [root@node1 ~]# vim /etc/auto.master /ldaphome /etc/auto.ldap [root@node1 ~]# vim /etc/auto.ldap * -rw,soft,intr 172.16.0.60:/ldaphome/& # 对应共享服务端的地址和目录 * 所有的挂载点 -rw nfs的挂载选项 & nfs-server端的共享目录 [root@node1 ~]# systemctl start autofs [root@node1 ~]# systemctl enable autofs [c:\~]$ ssh ldap1@172.16.0.61 [ldap1@node1 ~]$ [ldap1@node1 ~]$ cp /etc/passwd . [ldap1@node1 ~]$ ls passwd [root@ldapS ~]# cd /ldaphome/ldap1 [root@ldapS /ldaphome/ldap1]# ls passwd
应用场景
在ldap-client上,可以直接使用ldap-server的用户:
应用1:ssh
应用2:vsftpd
[root@node1 ~]# yum install -y vsftpd [root@node1 ~]# systemctl start vsftpd [root@centos7-bj ~]# ftp 172.16.0.61 Connected to 172.16.0.61 (172.16.0.61). 220 (vsFTPd 3.0.2) Name (172.16.0.61:root): ldap1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
应用3:samba
[root@node1 ~]# yum install -y samba [root@node1 ~]# vim /etc/samba/smb.conf [share] comment = test ldap path = /samba writable = yes create mask = 0664 directory mask = 0775 [root@node1 ~]# mkdir /samba [root@node1 ~]# chmod 1757 /samba/ [root@node1 ~]# smbpasswd -a ldap1 New SMB password: Retype new SMB password: Added user ldap1. [root@node1 ~]# smbpasswd -a ldap2 New SMB password: Retype new SMB password: Added user ldap2. [root@node1 ~]# systemctl start smb
==========================================
ldap的维护:
增加用户:
[root@ldapS ~]# ./useradd.sh 增加10个用户 保存新的用户名,组,密码,重新命名 [root@ldapS ~]# tail /etc/passwd > /tmp/newpasswd [root@ldapS ~]# tail /etc/group > /tmp/newgroup [root@ldapS ~]# tail /etc/shadow >> /tmp/shadow ##shadow是 >> 导入新的数据 [root@ldapS /usr/share/migrationtools]# ./migrate_passwd.pl /tmp/newpasswd > /tmp/user1.ldif [root@ldapS /usr/share/migrationtools]# ./migrate_group.pl /tmp/newgroup > /tmp/group1.ldif [root@ldapS ~]# ldapadd -xWD "cn=Manager,dc=sgy,dc=com" -f /tmp/user1.ldif [root@ldapS ~]# ldapadd -xWD "cn=Manager,dc=sgy,dc=com" -f /tmp/group1.ldif [root@node1 ~]# su - ldap11 [ldap11@node1 ~]$
删除用户:
[root@ldapS ~]# ldapdelete -xWD "cn=Manager,dc=sgy,dc=com" "uid=ldap1,ou=People,dc=sgy,dc=com" Enter LDAP Password: [root@node1 ~]# su - ldap1 su: user ldap1 does not exist
问题参考:
使用ldap用户登录ldap-client时,xshell提示访问密码被拒绝:
检查是否成功设置ldap密码,查看ldap用户时,是否可以查看到加密密码.如果重新设置密码后,依旧无法登录,提示密码访问被拒绝
检查密码是否成功设置并成功导入数据库,如果没有这些问题,那么,重启client系统如果 /ldaphome 下的家目录已经生成,但是命令行显示不对
检查对应用户的家目录权限是否是对应用户
ll /ldaphome/ldap1 # 正常情况 所属者和所属组应为该用户
检查autofs是否成功挂载,重新启动autofs -
LDAP
2020-10-17 09:36:46 目录是一个为查询、浏览和搜索而优化的数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,... -
系统安全-LDAP
2018-11-16 11:30:00LDAP服务器 1.目录服务 目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好像Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但是写性能差,... -
基于LDAP集中系统用户认证系统
2016-07-16 18:52:00drwx------ 3 ldap ldap 4096 Jul 14 10:49 slapd.d #我们需要移除slapd.d目录,目的是需要加载slapd.conf文件,默认情况下是不存在 [root@mhxy162 openldap]# [root@mhxy162 ... -
基于LDAP统一用户管理系统.zip
2019-12-11 22:39:40基于LDAP统一用户管理系统的研究与应用,内容充实。基于LDAP统一用户管理系统的研究与应用,内容充实。 -
uos系统配置ldap及phpldapadmin,修改LDAP的rootDN
2020-06-04 13:37:49uos系统修改LDAP的rootDN 环境: 系统:uos 20 SP1 处理器:HUAWEI Kunpeng 920 类型: 64位 用ldapmodify将cn=config里面的所有有dc=nodomain的项改成dc=example,dc=com. 该系统下安装slapd成功后,会默认创建dc=... -
关于LDAP协议
2019-04-07 20:49:00什么是LDAP协议? LDAP,全称为轻量级目录访问协议,是一项开放协议,用于通过分层目录结构对...LDAP系统中的数据主要以被称为属性得元素形式存储。属性在本质上属于健-值对。与其它系统不同,其中的健名称由为条... -
LDAP做系统和samba统一认证
2017-11-16 19:10:00Ldap统一认证实验 1.所需环境 LAMP:mysql没有用到 ...服务器名:model 2.下载软件 Db-6.0.30.tar.gz Openldap-2.4.39.tgz Pam_ldap.gz和Nss_ldap.gz(32为系统,64为nss-pam-ldap,实验中直接emerge... -
Linux下基于LDAP集中系统用户认证系统
2011-12-17 18:55:41Linux下基于LDAP统一用户认证系统完整版~ 可能其中还有些错误.欢迎指出~ http://www.net07.com/ldap-system-user-authentication-on-linux.html 方便网友.把文章也贴到CSDN上: 环境: ldap node1:19 -
ldap
2012-08-08 15:30:53最近想用ldap管理多个系统的用户,比如svn、redmine等,可以将多个系统的用户名密码统一交给ldap去管理。 对ldap了解一下。 LDAP是轻量 目录访问协议 ,英文全称是Lightweight Directory Access Protocol,一般... -
LINUX下基于LDAP集中系统用户认证系统
2019-06-12 16:04:02#Save ldap messages to ldap.log local4.* /var/log/ldap.log [/codesyntax] 重启syslog [codesyntax lang="perl" lines="no"] [root@localhost openldap]# service syslog restart Shutting down kernel logger: ... -
ldap统一用户认证_如何在系统里集成LDAP统一认证
2020-12-25 16:48:57一、为什么需要统一认证日常办公经常会有多套系统,如果各个系统各自...二、LDAP统一认证是什么LDAP是Light weight Directory Access Protocol(轻量级目录访问协议)的缩写,它是基于X.500标准的轻量组播目录访问协... -
Ldap用户无法登陆操作系统
2017-12-13 16:29:57我的机器的操作系统是redhat6.8,ip为:172.10.54.19 远程有一台ldap服务,在这台机器上使用authconfig-tui命令配置ldap客户端, 1 . 使用id命令,发现可以正常的找到ldap用户 jiang 2 .使用root用户su jiang 也能...
-
清华大学历年考研复试机试真题 -图
-
plsql下载
-
C语言零基础入门(详细讲解)
-
sqlite3的基本操作学习
-
usbinterface:使用node-hid与Max 8的USB设备进行接口-源码
-
创新创客教育法则
-
2021年 系统架构设计师 系列课
-
elasticsearch_accounts.json
-
梯度稀疏性先验图像matting算法
-
使用 Linux 平台充当 Router 路由器
-
2021年高压电工答案解析及高压电工作业模拟考试
-
面试题之--springbean的生命周期及创建流程
-
项目管理工具与方法
-
2021年C证(安全员)复审考试及C证(安全员)模拟考试题
-
java枚举类-根据key获取value及根据value获取key
-
MySQL 管理利器 mysql-utilities
-
MySQL 触发器
-
基于labview平台语音识别.vi
-
基于Qt的LibVLC开发教程
-
RPS:剪刀石头布-源码