近几年,随着LDAP(Light Directory Access
Protocol,轻量级目录访问协议)技术的兴起和应用领域的不断扩展,目录服务技术成为许多新型技术实现信息存储、管理和查询的首选方案,特别是在网
络资源查找、用户访问控制与认证信息的查询、新型网络服务、网络安全、商务网的通用数据库服务和安全服务等方面,都需要应用目录服务技术来实现一个通用、
完善、应用简单和可以扩展的系统。
对于任何一家大IT网络的企业来说,IT系统中的目录服务功能是必不可少的。如果一个在全国有多个分支机构的企业,已经有了一个内部网络系统,每一个分支
机构都有一个局域网,局域网之间通过专线或者VPN通道连接在一起,那么,如何将网络中的资源和信息有效地管理起来呢?通常,这个企业可以在每一个分支机
构或者每个城市建立一个目录服务器,任何地方的员工连接到本地目录服务器就可以访问到目录树中所有的信息,在目录服务器之间复制目录信息,以保持同步。比
如,人事部门看到的人员目录与财务部门、设备管理部门看到的人员目录是完全一致的,他们所使用的应用系统无须再建立另一套目录结构。当然,这一切都是要经
过身份验证的。
目录服务有着如此重要的作用,但在过去,企业通常采用基于Windows的目录服务器,Linux在这方面相形逊色。作为Windows的核心内容,目录
服务被企业IT人员认为是Windows与Linux相比最具竞争力的部分,也成为Linux产品架构中的软肋。随着Red Hat
Enterprise Linux 4.0出现,这个情况已经改变了。RHEL 4 内附的LDAP 服务器为OpenLDAP 2.2.13-2
版,OpenLDAP 2.x包括数个重要功能:
1. 支持LDAPv3 - OpenLDAP 2.0
除了其它改善外还支持SASL(SimpleAuthentication and Security Layer)、TLS(Transport
Layer Security)以及SSL(Secure Sockets Layer)。LDAPv2 之后通讯协议很多的改变都是为了加强LDAP
的安全性。
2. 支持IPv6 - OpenLDAP 支持新一代的因特网通讯协议第6 版。
3. LDAP Over IPC - OpenLDAP 能够使用IPC 在系统内进行通讯。这可以避免使用网络通讯以增加安全性。
4. 使用新的应用程序界面: 改善程序设计人员联机及使用程序的方法。
本文将以Red Hat Enterprise Linux 4.0 为例,介绍在Linux平台使用OpenLDAP上建立目录服务器。
一、LDAP协议简介
LDAP(轻
量级目录访问协议,Lightweight Directory Access
Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用
来包含描
述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务的更新则一
般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,就需要使用运行在TCP/IP之上的访
问协议—LDAP。
LDAP目录中的信息是是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。条目相当于关系数据库中表的记录;条目是具有区别名
DN(Distinguished
Name)的属性(Attribute),DN是用来引用条目的,DN相当于关系数据库表中的关键字(Primary
Key)。属性由类型(Type)和一个或多个值(Values)组成,相当于关系数据库中的字段(Field)由字段名和数据类型组成,只是为了方便检
索的需要,LDAP中的Type可以有多个Value,
而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置
和组织关系进行组织,非常的直观。LDAP系统结构图见图1.
图1 LDAP系统结构图
LDAP的信息是以树型结构存储的,在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织
(organization)(o=Acme)或组织单元(organizational units)
(ou=People)。一个组织单元可能包含诸如所有雇员、 大楼内的所有打印机等信息。
此外,LDAP支持对条目能够和必须支持哪些属性进行控制,这是有一个特殊的称为对
象类别(objectClass)的属性来实现的。该属性的值决定了该条目必须遵循的一些规则,其规定了该条目能够及至少应该包含哪些属性。例
如:inetorgPerson对象类需要支持sn(surname)和cn(common
name)属性,但也可以包含可选的如邮件,电话号码等属性。dn :一条记录的位置;dc :一条记录所属区域;ou
:一条记录所属组织;cn/uid:一条记录的名字/ID。OpenLdap是一个正在得到日益普遍应用的开源软件,和LADP完全兼容。
二、安装OpenLDAP服务器
如
果在系统安装时已经把安装上了,那么我们就可以直接对OpenLDAP进行配置使用了。否则,可以通过Rat Het Enterprise
Linux图形界面下的“添加/删除应用程序”工具进行安装。具体方法是,选择“主选单”→“系统设置”→“添加/删除应用程序”,在弹出的界面中选中
“网络服务器”的“OpenLDAP-server”,单击“更新”即可,见图2。
图2 安装OpenLDAP 服务器软件
如果你使用的是其他版本的Linux,那么通常要安装以下软件包:OpenLDAP、 OpenLDAP-servers、
OpenLDAP-clients、 OpenLDAP-devel
,OpenLDAP-2.0是必要套件,一定要先安装;OpenLDAP-servers是服务器套件;OpenLDAP-clients是操作程序套
件;OpenLDAP-devel是开发工具套件。
三、配置OpenLDAP 服务器
以RedHat Linux 4所为例字介绍OpenLDAP 服务器配置文件。主要文件见表1。
表1
1. 建立Linux用户账号
使用文本编辑建立一个文本文件,文件名称myusers.list 内容如下:
user1 123456
user2 123456
user3 123456
user4 123456
user5 123456
user6 123456
user7 123456
user8 123456
user9 123456
注意:第一个字段为使用者名称;第二个字段为预设密码,中间必须用空格隔开。然后使用文本编辑建立另外一个文本文件,文件名称add-users.sh内容如下:
#!/bin/bash
for i in `awk '{print $1}' users.list `
do
useradd $i
grep "<$i>" users.list | awk '{print $2}' | passwd --stdin $i
done
建立Linux用户账号:
#chmod 775 add-users.sh
#./add-users.sh
2.修改缺省配置文件:/etc/OpenLDAP/slapd.conf,请把蓝色部分按照您的具体情况填写。
database bdb
suffix "dc=myexample,dc=com" #一条记录所属区域#
rootdn "cn=Manager,dc=example,dc=com"
rootpw 1234567 #定义LDAP根管理员的密码
3.将原有Linux 账号转为LDIF 文件
原有Linux 服务器上有user1-user9 这些使用者账号,密码均为123456;面便是转换的步骤:
# cd /usr/share/OpenLDAP/migration #转换文件的目录#
# vi migrate_common.ph
$DEFAULT_MAIL_DOMAIN = "myexample.com";
Default base
$DEFAULT_BASE = "dc=myexample,dc=com";
# ./migrate_passwd.pl /etc/passwd > /worktmp/user.ldif
# ./migrate_group.pl /etc/group > /worktmp/group.ldif
4. 建立example.ldif,ou_people.ldif, ou_group.ldif三个文件
#cat example.ldif
dn: dc=example,dc=com
dc: example
objectClass: dcObject
objectClass: organizationalUnit
ou: example.com
#cat ou_people.ldif
dn: ou=people, dc=example, dc=com
objectclass: organizationalunit
ou: people
#cat ou_group.ldif
dn: ou=group, dc=example, dc=com
objectclass: organizationalunit
ou: group
5. 转换原有Linux 账号至OpenLDAP服务器上:
#slapadd -vl example.ldif
added: "dc=example,dc=com" (00000001)
#slapadd -vl ou_people.ldif
added: "ou=people,dc=example,dc=com" (00000002)
#slapadd -vl ou_group.ldif
added: "ou=group,dc=example,dc=com" (00000043)
#slapadd -vl user.ldif
#slapadd -vl group.ldif
四、启动OpenLDAP服务器
#chown ldap.ldap /var/lib/ldap/* #把/var/lib/ldap/目录内的档案变更拥有者及群组为ldap。
然后可以通过Rat Het Enterprise Linux图形界面下的选择“主选单”→“系统设置”→“服务器设置”-“服务”,在弹出的界面中选中ldap”,单击“重新启动”即可,见图3。
图3 服务器启动界面
利用ldapsearch 指令可搜寻LDAP 服务器的数据,若是可看到以下的数据,代表整个设定正确无误。
# ldapsearch -x -b "dc=example,dc=com"
………
# user9, Group, myexample.com
dn: cn=user9,ou=Group,dc=myexample,dc=com
objectClass: posixGroup
objectClass: top
cn: user9
userPassword:: e2NyeXB0fXg=
gidNumber: 508
………
五、配置Linux OpenLDAP客户端
在客户端执行authconfig-gtk命令,进入认证配置界面,进入图4所示的界面中配置LDAP服务器的信息。在LDAP 服务器处 指定 LDAP 服务器的 IP 地址。
图4 添加OpenLDAP服务器IP地址
打开 /etc/ldap.conf 文件,下面是一些用于配置的关键指令。
到此为止我们已经配置完成Liunx OpenLDAP目录服务器、客户端。
要安装 MySQL,可以在终端提示符后运行下列命令:
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php5-mysql
// 安装php5-mysql 是将php和mysql连接起来
一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:
sudo netstat -tap | grep mysql
当您运行该命令时,您可以看到类似下面的行:
tcp 0 0 localhost.localdomain:mysql *:* LISTEN -
如果服务器不能正常运行,您可以通过下列命令启动它:
sudo /etc/init.d/mysql restart
进入mysql
mysql -uroot -p
(输入mysql的root密码)
配置 MySQL 的管理员密码:
(输入mysql的root密码)
配置 MySQL 的管理员密码:
我还在想象着我的18岁,可我却马上30岁了!真的吗?不愿意去想,但不得不面对。
曾经的年少轻狂,早已荡然无存。曾经的花样年华,早已悄然而逝。80后的我们已经开始站在了20岁的尾巴上,面对三十而立,还有多少人可以昂着头,信誓旦
旦地说,我们依然年轻?是的,年轻就是资本,面对着90后的异军突起,80后的我们是否还年轻?
曾经,骄傲的我们都怀抱着崇高的理想,奔走在陌生的城市,只为寻找内心深处最真的梦想。曾经,生活得再艰难,都会想着只要自己努力,就一定可以取得成
功。曾经,单纯的认为,就算很小很小的一个房间,都可以经营自己最美的爱情。当事业依然碌碌无为的时候,当爱情变得虚无缥缈的时候,80后的我们,是不是
依然还会说,年轻不怕失败?
终有一天,我才发现,原来,80后的我们,都早已经老去。我们不再轻狂,我们不再潇洒,我们不再坦荡,我们不再微笑,我们有的是对于生活的压力,我们有的是对于婚姻的恐惧,我们有的是对于未来的失望,我们有的是对于困难的却步.
面对工作:我们已经没有了更多的激情,只希望能够有一份足够安稳的工作。有风险的工作都已经被排斥了,曾经一千个一万个不愿意走关系找工作的我们,面
对着事业的平淡,连收入都无法给予自己温饱的时候,我们不得不选择屈服,放下原本最高傲的脸面,开始寻求人际关系的最大化。工作的艰辛,对于我们无所畏
惧,重要的是可以一直将这份工作持续。
面对感情:已经不把婚姻当成爱情的升华,而是把婚姻当作是亲情。我们不再渴望一份浪漫而刺激的爱情,而是奢望一段幸福而美满的婚姻。曾经固执的以为,
相亲那只不过是70后,或者说更早一代的婚姻方式,然而等到现在才发现,相亲已经成为了80后婚姻的主流方式。一场场地相亲,一次次的绝望,已经对相亲产
生了麻木和排斥,但依然奔波在相亲场上。难怪,一个朋友说:“我不是在相亲,就是在相亲的路上。”
面对穿着:曾经过度讲究品牌感觉的我们,对于品牌已经变得陌生,橱柜里的昂贵的衣服,让工薪阶层的我们没有勇气再去试穿。赚钱之后,才知道,原来生活
是多么的不容易。我们不再讲究品牌,而更注重衣服的质量以及用途,适合穿着的场合,不再会因为一时的冲动,去血拼那些打折的衣服,衣服不在于多,而在于体
面。合适的,才是我们所需要的,品牌只不过是一个虚幻的东西。
面对社交:当越来越多的朋友有了家庭之后,已经没有多大的勇气再和他们一起聊聊关于生活,因为在他们的口中,都是关于家庭的,而单身的80后更注重个
人情感的书法。曾经极度热爱的酒吧、KTV都不再喜欢了,已经忍受不了那种嘈杂、疯狂的环境,更喜欢坐在咖啡厅里或者茶馆里,看看书,听听音乐,享受咖啡
的苦涩,亦或者茶的清香。
面对家庭:家庭超越了爱情和友情,一切都将家庭放在第一位。没有了原本的冲动,了解了父母的苦心,懂得去体谅他们的无可奈何。原本单纯的家庭之间的关
系,在某一天突然变得清晰,了解了人与人之间的关系,原来一直都不那么单纯,最值得相信的,除了父母,还有自己。越来越讨厌,走亲访友,因为总是会有很多
人问题,关于婚姻的某个问题。
面对娱乐:突然发现,手机使用的频率越来越少了,短信也越来越少了,有的时候甚至不愿意发短信,宁可打个电话,匆匆挂掉。QQ也不像以前那样拼命地闪
个不停,退出了许多的群,有些群碍于面子,一直处于屏蔽,只是偶尔选择几个群聊几句就隐身。再也不会为了游戏,废寝忘食地玩,更多的时候会捧着一本书,安
静地看着。
面对购物:总会想着买东西的时候,是不是有什么赠品,而不会看着哪个好看就买哪个。不再会像以前那样,为了得到某样赠品,去买某样自己不喜欢的东西。
购物早已不是逛街了,而变成了有目的性的行为,买完自己想要的东西,就匆匆离开。一些漂亮,精致的小摆设,只是在柜台上欣赏完之后,放回去,再也不会带回
家之后,塞进箱底。
面对一切的一切,我们都已经会了深思熟虑,我们的心中,早已没有了童话。我们浪费掉了太多的青春,那是一段如此自以为是、又如此狼狈不堪的青春岁月。有欢笑,也有泪水;有朝气,也有颓废;有甜蜜,也有荒唐;有自信,也有迷茫。
我们敏感,我们偏执,我们顽固到底地故作坚强;我们轻易的伤害别人,也轻易的被别人所伤。
我们追逐于颓废的快乐,陶醉于寂寞的美丽;
我们坚信自己与众不同,坚信世界会因我而改变;
我们觉醒其实我们已经不再年轻,我们前途或许也不再是无限的,其实它又何曾是无限的?
80后的我们,已经开始承认我们老了,没有了90后的青春,没有90后的激情,我们有的只是为了生活进行奔波着的疲惫的心。偶尔微笑着告诉自己:三十
岁的男人,我的美好年华才刚刚开始。80后的我们,打一场酣畅淋漓球,也都心有余而力不足。很久没有运动,开始显露臃肿的啤酒肚。
我不禁感叹:原来,80后的我们都早已老去,只是我们一直不愿意服老。
“今天,之所以区别于昨天,恰恰是因为昨天的感受依然在我心中。”
sudo aptitude install gnoCHM
1995,Auer曾在文献[AUER95]中指出:
1.应当根据行为而不是状态定义一个类。也就是说,一个类的实现首先建立在行为基础之上,而不是建立在状态的基础之上。
2.在实现行为时,是用抽象状态而不是用具体状态。如果一个行为涉及到对象的状态时,使用间接的引用而不是直接的引用。换言之,应当使用取值方法而不是直接引用属性。
3.给操作划分层次。一个类的行为应当放到一个小组核心方法(kernel method)里面,这些方法以很方便地在子类中加以置换。
4.将状态属性的确认推迟到子类中。不要在抽象类中过早声明属性变量,应该将它们尽量地推迟到子类中去声明。在抽象超类中,如果需要状态属性的话,可以调用抽象的取值方法,而将抽象的取值方法的实现放到具体子类中。
如果能够遵从这样的原则,那么就可以在等级结构中将接口与实现分隔开来,将抽象与具体分割开来,从而保证代码可以最大限度地被复用。
Ctrl-C:SIGINT中断程序
Ctrl-\:发出SIGQUIT信号中断程序
Ctrl-H: 删除一个字符(包括中文字符)
Ctrl-U:删除自上一个 EOF 或行首以来的输入
Ctrl-D:文件尾字符,这个字符使得 tty 缓冲中的内容被送到等待输入的用户程序中,而不必等到 EOL。
Ctrl-Q:开始字符(所有缓冲区字符进入shell)
Ctrl-S: 停止字符(所有输入不进入shell)
Ctrl-Z: 挂起字符
Ctrl-V: 字面上的下一个(常用于输入特殊字符,如windows文本文件特有的^M)
Ctrl-W: 删除左边词。
Ctrl-K:删除右边所有字符
Ctrl-O,Ctrl-J,Ctrl-M:开始新行
Ctrl-A:行首
Ctrl-E:行尾
Ctrl-B:左移
Ctrl-F:右移
Ctrl-L:翻页
Ctrl-P:上一个命令
Ctrl-N:下一个命令
Ctrl-Y:粘贴
原地址:
http://bbs.chinaitlab.com/dispbbs.asp?boardid=148&id=34276
======================================================================
国内:
www.chinajavaworld.com -论坛人很多,高手也多,不过好像都在潜水
www.cn-java.com -也很不错,文章很好,但是就是商业性浓了点。
www.chinaitlab.com- 非常有系统性,而且推出的java远程教育是中国最全面的scjp远程教育。
www.huihoo.com -灰狐动力,有个jfox,而且很多关于企业级应用的东西
www.matrix.org.cn -Matrix技术,不少java文章和资源,论坛牛人多,人气略差。
www.javastudy.org -java学习可下载
资料不少,论坛人气也一般。
www.javaresearch.org -很多好文章,而且有出书。
www.jdon.com -很多java设计模式的资料。
www.java-cn.com -很多资料和书籍下载,文摘也有不少,就是下载要扣分。
www.java.com.cn -论坛不错,人气够旺,不过有时候老上不去。
www.javapub.com -还可以。我去的较少。
www.javajia.com -同上。
http://www-900.ibm.com/developerWorks/cn/index.shtml -ibm非常不错,里面的好文章层出不穷啊。
tech.ccidnet.com -赛迪还算比较有特色,原创很多。
www.zdnet.com.cn -zdnet也不错哦,精彩。
水木清华java版 -很多大牛,真的很多,呵呵。
www.yesky.com -很多好文章,原创比较多。
==============================================================
国外:
www.sun.com -不用多说吧。
www.apache.org -apache很多开源项目,无论是拿来用还是看源代码都很不错
www.onjava.com -orielly的,java资源很多
www.javaworld.com- 很多java文章和tips
www.jguru.com -很多文章,还有论坛
www.theseverside.com -关于应用的比较多,比如服务器
www.sourceforge.net -开源之祖啊。
====================================================================
JAVA开发者应该去的20个英文网站
http://bbs.chinaitlab.com/dispbb ... D=155692&page=1
http://www.javaalmanac.com
Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
http://www.onjava.com
O'Reilly的Java网站. 每周都有新文章
http://java.sun.com
官方的Java开发者网站 - 每周都有新文章发表
http://www.developer.com/java
由Gamelan.com 维护的Java技术文章网站
http://www.java.net
Sun公司维护的一个Java社区网站
http://www.builder.com
Cnet的Builder.com网站 - 所有的技术文章, 以Java为主.
http://www.ibm.com/developerworks/java
IBM的Developerworks技术网站; 这是其中的Java技术主页
http://www.javaworld.com
最早的一个Java站点. 每周更新Java技术文章
http://www.devx.com/java
DevX维护的一个Java技术文章网站
http://www.fawcette.com/javapro
JavaPro在线杂志网站.
http://www.sys-con.com/java
Java Developers Journal的在线杂志网站.
http://www.javadesktop.org
位于Java.net的一个Java桌面技术社区网站.
http://www.theserverside.com
这是一个讨论所有Java服务器端技术的网站.
http://www.jars.com
提供Java评论服务. 包括各种framework和应用程序
http://www.jguru.com
一个非常棒的采用Q&A形式的Java技术资源社区.
http://www.javaranch.com
一个论坛,得到Java问题答案的地方,初学者的好去处。
http://www.ibiblio.org/javafaq/javafaq.html
comp.lang.java的FAQ站点 - 收集了来自comp.lang.java新闻组的问题和答案的分类目录.
http://java.sun.com/docs/books/tutorial/
来自SUN公司的官方Java指南 - 对于了解几乎所有的java技术特性非常有帮助.
http://www.javablogs.com
互联网上最活跃的一个Java Blog网站.
http://java.about.com/
来自About.com的Java新闻和技术文章网站.
水木清华java版 的地址是下面的,需要注册,登陆后进去找找吧
http://www.smth.edu.cn
linux 查看进程信息
ps –aux
查看进程的命令有很多,我只是列出了我最常用的几个。
netstat –tln //查看服务监听端口
netstat //查看进程号
ps –aux //查看进程号
ps –aux | more //全部查看
ps –ef | grep mysql //查看mysql的进程
kill -9 3306 //强制杀掉进程号3306
防火墙的设置
设置防火墙: setup
查看防火墙设置: iptables –L
安装Mplayer
sudo apt-get install mplayer mplayer-fonts mplayer-skin mozilla-mplayer
安装解码器
sudo apt-get install w32codecs
回车然后输入你的用户密码,安装解码器
w32codecs是用于播放wmv、rmvb等常见windows平台下的多媒体文件,但如果你的电脑CPU是AMD64,请执行
sudo apt-get install w64codecs
提示一下:如果w32codecs、w64codecs没源的话,那么自己下面地址下载对应的beb后缀的文件后双击安装
http://www.debian-multimedia.org/pool/main/w/w32codecs/
http://www.debian-multimedia.org/pool/main/w/w64codecs/
现在通过 应用程序->影音->SMplayer Movie Player可以播放大部了分的多媒体了
安装Smplayer
强烈建议您安装Smplayer,这个是mplayer强大的皮肤加前端
如法炮制:
sudo apt-get install smplayer
以后通过应用程序->影音->Smplayer打开Mplayer就好了,看一看它有多么豪华