Linux的权限和所有权模型(转帖)

转载者前言:

本来这些内容在linux的在线man文档或info文档中都有非常详细的解释,无奈英文不行,还是不能全面理解linux的权限系统,只好上网查了一下,收集到一篇比较完整的介绍转帖于此。其中的内容涉及:一般w,r,x标志位控制,特殊的suid,sgid,t标志位控制,umask控制;

linux的权限系统是使用linux的重要基础,如果不能对其所有权模型有比较透彻的理解,就会对正确理解和使用系统中的一些东西造成障碍,比如我碰到的:删除linux的/tmp目录引起的不能正常登录系统的故障: http://java.learndiary.com/diaries/3112.jsp

另外,对权限系统目前还有如下的疑问

1)、大写“X”标志位是做什么用的?

2)、passwd程序怎样控制用户只访问/etc/passwd文件中用户能够访问的部分?

转帖正文:

******************************************************************************

转自:Linux的权限和所有权模型:http://linux.chinaitlab.com/safe/38178.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  一个用户、一个组

  

  我们来看一看 Linux 权限和所有权模型。我们已经看到每个文件属于一个用户和一个

组。这正是 Linux 中权限模型的核心。您可以在 ls -l 清单中查看用户和组:

  

  $ ls -l /bin/bash

  

  -rwxr-xr-x  1 root   wheel   430540 Dec 23 18:27 /bin/bash在这个特殊

的示例中,/bin/bash 可执行文件属于 root 用户,并且在 wheel 组中。Linux 权限模型

通过允许给每个文件系统对象设置三种独立的权限级别来工作—它们为文件的所有者、文

件的组以及所有其他用户。

  

  理解“ls -l”

  

  我们来看一看我们的 ls -l 输出,检查一下这个清单的第一栏:

  

  $ ls -l /bin/bash-rwxr-xr-x  1 root   wheel   430540 Dec 23 18:27 /

bin/bash第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符

(-)指定该文件的类型,本例中它是一个常规文件。其它可能的首字符还有:

  

  “d”目录“l”符号链接“c”字符专门设备文件“b”块专门设备文件“p”先进先出

“s”套接字三个三元组$ ls -l /bin/bash-rwxr-xr-x  1 root   wheel   

430540 Dec 23 18:27 /bin/bash该字段的其余部分由三个三元组字符组成。第一个三元字

符组代表文件所有者的权限,第二个代表文件的组的权限,第三个代表所有其他用户的权

限:

  

  "rwx""r-x""r-x"上面,r 表示允许读(查看文件中的数据),w 表示允许写(修改文

件以及删除),x 表示允许“执行”(运行程序)。将所有这些信息放在一起,我们可以

发现每个人都能够读该文件的内容和执行该文件,但是只允许文件所有者(root 用户)可

以以任何方式修改该文件。因此,虽然一般用户可以复制该文件,但是只允许 root 用户

更新或删除它。

  

  我是谁?在我们看怎样改变文件的用户所有权和组所有权之前,我们首先来看一看怎

样得知您当前的用户标识和组成员资格。除非最近您使用过 su 命令,否则您当前的用户

标识是您用来登录系统的用户标识。但是,如果您经常使用 su,您可能不记得您当前有效

的用户标识。要查看用户标识,输入 whoami:# whoamiroot# su drobbins$

whoamidrobbins我在哪一组?要看看您属于哪一组,使用 group 命令:$ groupsdrobbins

wheel audio在上面的示例中,我是 drobbins、wheel 和 audio 组的成员。如果您想看看

其他用户在什么组,指定他们的用户名作为参数:

  

  $ groups root daemonroot : root bin daemon sys adm disk wheel floppy

dialout tape videodaemon : daemon bin adm改变用户和组所有权为了改变文件或其它文

件系统对象的所有者或组,分别使用 chown 或 chgrp。这两个命令都要一个用户名或组名

作参数,后面跟上一个或多个文件名。

  

  # chown root /etc/passwd# chgrp wheel /etc/passwd您还可以用 chown 命令的另

一种形式同时设置所有者和组:

  

  # chown root.wheel /etc/passwd除非您是超级用户,否则您不可以使用 chown,然

而任何人都可以使用 chgrp 来将文件的组所有权改为他们所属的组。

  

  递归的所有权改变chown 和 chgrp 都有一个 -R 选项,该选项可以用来告诉它们递归

地将所属权和组改变应用到整个目录树中。例如:# chown -R drobbins /home/drobbins

介绍 chmodchown 和 chgrp 可以用来改变文件系统对象的所有者和组,而另一个程序—叫

做 chmod —用来改变我们可以在 ls -l 清单中看到的 rwx 权限。chmod 带有两个或多个

参数:“mode”,描述怎样改变权限,后面跟将会受到影响的文件或文件列表:$ chmod

+x scriptfile.sh在上面的示例中,我们的“mode”是 +x。您可能会猜到,+x 模式告诉

chmod,使该特殊文件对于用户、组以及其它任何人都是可执行的。如果我们想要除去一个

文件的所有执行权限,我们应该这样做: $ chmod -x scriptfile.sh用户/组/其他粒度

到此,我们的 chmod 示例已经影响到了所有三个三元组—用户、组和所有其他用户。通常

,一次只修改一个或两个三元组很方便。要这样做,只需要在 + 或 - 符号之前,给您想

要修改的特定的三元组指定符号字符。对于“用户”三元组使用 u,对于“组”三元组使

用 g,对于“其他/每个人”使用 o:$ chmod go-w scriptfile.sh我们刚除去了组和所

有其他用户的写权限,而保留“所有者”权限不动。重新设置权限除了交替打开和关闭权

限位以外,我们还可以一起重新设置它们。通过使用 = 操作符,我们可以告诉 chmod 我

们要指定权限和取消别的权限:$ chmod =rx scriptfile.sh上面,我们只设置了所有的“

read”和“execute”位,没有设置所有的“write”位。如果您仅仅想重新设置特定的三

元组,您可以像下面这样,在 = 之前指定该三元组的符号名:

  

  $ chmod u=rx scriptfile.sh

  

  数字模式

  

  直到现在为止,我们使用了叫做“符号”的模式来用 chmod 指定权限的改变。然而,

指定权限还有一种普遍使用的方法—使用 4 位八进制数。使用叫做数字权限语法的语法,

每一位代表一个权限三元组。例如,在 1777 中,777 设置本章我们所讨论的“owner”、

“group”和“other”标志。1 用来设置专门的权限位,我们将在本章的结束部分讲到。

这个图表说明了怎样解释第二到四位(777):

  

  模式数字

  rwx 7

  rw- 6

  r-x 5

  r-- 4

  -wx 3

  -w- 2

  --x 1

  --- 0

  

  数字权限语法

  

  当您需要给一个文件指定所有权限时,数字权限语法特别有用,比如在下面的示例中



  

  $ chmod 0755 scriptfile.sh

  

  $ ls -l scriptfile.sh

  

  -rwxr-xr-x  1 drobbins drobbins    0 Jan 9 17:44 scriptfile.sh

  

  在该示例中,我们使用了 0755 模式,它展开为一个完整的权限设置“-rwxr-xr-x”



  

  Umask

  

  当进程创建了新文件时,它指定新文件应该具有的权限。通常,所请求的模式是 0666

(每个人可读和可写),它比我们希望的具有更多的权限。幸运的是,不管什么时候创建

了新文件,Linux 将参考叫做“umask”的东西。系统用 umask 值来将初始指定的权限降

低为更合理、更安全的权限。您可以通过在命令行中输入 umask 来查看您当前的 umask

设置:

  

  $ umask

  

  0022

  

  Linux 系统上,umask 的缺省值一般为 0022,它允许其他人读您的新文件(如果他们

可以得到它们),但是不能进行修改。为了在缺省的情况下使新文件更安全,您可以改变

umask 设置: $ umask 0077umask 将确保组和其他用户对于新创建的文件绝对没有任何权

限。那么,umask 怎样工作呢?与文件的“常规”权限不同,umask 指定应该关闭哪一个

权限。我们来参阅一下我们的“模式到数字”映射表,从而使我们可以理解 0077 的

umask 的意思是什么:模式数字 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0 使

用该表,0077 的最后三位扩展为 ---rwxrwx。现在,请记住 umask 告诉系统禁用哪个权

限。根据推断,我们可以看到将关闭所有“组”和“其他”权限,而“用户”权限将保留

不动。

  

  介绍 suid 和 sgid

  

  当您最初登录时,将启动一个新的 shell 进程。您已经知道,但是您可能还不知道这

个新的 shell进程(通常是 bash)使用您的用户标识运行。照这样,bash 程序可以访问

所有属于您的文件和目录。事实上,作为用户,我们完全依靠其它程序来代表我们执行操

作。因为您启动的程序继承了您的用户标识,因此它们不能访问任何不允许您访问的文件

系统对象。

  

  例如,一般用户不能直接修改 passwd 文件,因为“write”标志已经对除“root 用

户”以外的每个用户关闭:

  

  $ ls -l /etc/passwd

  

  -rw-r--r--  1 root   wheel    1355 Nov 1 21:16 /etc/passwd

  

  但是,一般用户确实需要在他们需要改变其密码的任何时候,能够修改 /etc/passwd

(至少间接地)。但是,如果用户不能修改该文件,究竟怎样完成这个工作呢?

  

  Suid

  

  幸好,Linux 权限模型有两个专门的位,叫做“suid”和“sgid”。当设置了一个可

执行程序的“suid”这一位时,它将代表可执行文件的所有者运行,而不是代表启动程序

的人运行。现在,回到 /etc/passwd 问题。如果看一看 passwd 可执行文件,我们可以看

到它属于 root 用户:

  

  $ ls -l /usr/bin/passwd

  

  -rwsr-xr-x  1 root   wheel    17588 Sep 24 00:53 /usr/bin/passwd

  

  您还将注意到,这里有一个 s 取替了用户权限三元组中的一个 x。这表明,对于这个

特殊程序,设置了 suid 和可执行位。由于这个原因,当 passwd 运行时,它将代表 root

用户执行(具有完全超级用户访问权),而不是代表运行它的用户运行。又因为 passwd

以 root 用户访问权运行,所以能够修改 /etc/passwd 文件,而没有什么问题。

  

  suid/sgid 告诫说明

  

  我们看到了 suid 怎样工作,sgid 以同样的方式工作。它允许程序继承程序的组所有

权,而不是当前用户的程序所有权。这里有一些关于 suid 和 sgid 的其它的但是很重要

的信息。首先,suid 和 sgid 占据与 ls -l 清单中 x 位相同的空间。如果还设置了 x

位,则相应的位表示为 s(小写)。但是,如果没有设置 x 位,它将表示为 S(大写)。

另一个很重要的提示:在许多环境中,suid 和 suid 很管用,但是不恰当地使用这些位可

能使系统的安全遭到破坏。最好尽可能地少用“suid”程序。passwd 命令是为数不多的必

须使用“suid”的命令之一。

  

  改变 suid 和 sgid

  

  设置和除去 suid 与 sgid 位相当简单。这里,我们设置 suid 位:

  

  # chmod u+s /usr/bin/myapp

  

  此处,我们从一个目录除去 sgid 位。我们将看到 sgid 位怎样影响下面几屏中的目

录:

  

  # chmod g-s /home/drobbins

  

  权限和目到此为止,我们从常规文件的角度来看权限。当从目录的角度看权限时,情

况有一点不同。目录使用同样的权限标志,但是它们被解释为表示略微不同的含义。对于

一个目录,如果设置了“read”标志,您可以列出目录的内容;“write”表示您可以在目

录中创建文件,“execute”表示您可以进入该目录并访问内部的任何子目录。没有“

execute”标志,目录内的文件系统对象是不可访问的。没有“read”标志,目录内的文件

系统对象是不可查看的,但是只要有人知道磁盘上对象的完整路径,就仍然可以访问目录

内的对象。目录和 sgid如果启用了目录的“sgid”标志,在目录内创建的任何文件系统对

象将继承目录的组。当您需要创建一个属于同一组的一组人使用的目录树时,这种特殊的

功能很管用。只需要这样做:

  

  # mkdir /home/groupspace

  

  # chgrp mygroup /home/groupspace

  

  # chmod g+s /home/groupspace

  

  现在,mygroup 组中的所有用户都可以在 /home/groupspace 内创建文件或目录,同

样,他们也将自动地分配到 mygroup 的组所有权。根据用户的 umask 设置,新文件系统

对象对于 mygroup 组的其他成员来说,可以或不可以是可读、可写或可执行的。目录和删

除缺省情况下,Linux 目录以一种不是在所有情况下都很理想的方式表现。一般来说,只

要对一个目录有写访问权,任何人都可以重命名或删除该目录中的文件。对于个别用户使

用的目录,这种行为是很合理的。但是,对于很多用户使用的目录来说,尤其是 /tmp 和

/var/tmp,这种行为可能会产生麻烦。因为任何人都可以写这些目录,任何人都可以删除

或重命名任何其他人的文件—即使是不属于他们的!显然,当任何其他用户在任何时候都

可以输入“rm -rf /tmp/*”并损坏每个人的文件时,很难把 /tmp 用于任何有意义的文件

。所幸,Linux 有叫做“粘滞位”(sticky bit)的东西。当给 /tmp 设置了粘滞位(用

chmod +t),唯一能够删除或重命名 /tmp 中文件的是该目录的所有者(通常是 root 用

户)、文件的所有者或 root 用户。事实上,所有 Linux 分发包都缺省地启用了 /tmp 的

粘滞位,而您还可以发现粘滞位在其它情况下也很管用。难以理解的第一位总结本章,我

们最后来看一看数字模式的难以理解的第一位数。您可以看到,这个第一位数用来设置

sticky、suid 和 sgid 位:

  

  suid sgid sticky 模式数字 on on on 7 on on off 6 on off on 5 on off off 4

off on on 3 off on off 2 off off on 1 off off off 0

  

  这里有一个怎样用 4 位数字模式来设置一个目录的权限的示例,该目录将由一个工作

组使用: # chmod 1775 /home/groupfiles请想一想 1755 数字模式权限设置的含义。

  相关产品与培训

● 相关文章                                           ● 推荐文章

避其锋芒 Linux操作系统入侵实例

构建一个基于软盘的防火墙

用Linux防火墙伪装抵挡黑客恶意攻击

用rsync从Linux到Windows远程备份(组图)

解决新的SELinux安全级别产生问题(图)

linux SSH 的一些安全小技巧

Linux下PhpMyAdmin程序目录的安全管理

Linux网络安全经验之谈

防火墙 Linux 数据包捕获模块包过滤

巧妙利用Linux系统IP伪装抵住黑客攻击

********************************************************************************

                                     转帖完毕

Windows操作系统减肥;难舍我的linux操作系统

因为在一个486DX100 + 1.6G的硬盘的机器上装了redhat linux9.0和windows97双系统,我只有150M的空间用来装windows97,这个系统的主要功能就是读html+javascript的一本重要的电子书,还要装一个地球村翻译软件和更新IE为IE5.5。就必须对系统减一下肥,在网上查了一下资料。主要作了下列清理。

删除:

1、windows\fonts中除了宋体的中文字体,英文字体保留;

2、windows\help目录,帮助文件;

3、windows\sysbckup目录,系统文件备份目录;听说可以从安装光盘中读取;

4、windows\java目录,java文件,我在这个机器上用不着。

当然,我把这些目录和文件都在linux下复制到了linux的/boot分区,安装linux系统对boot分区好像有一个下限要求,我给/boot分区分了80M,结果使用时只用了几M。

就是这样的古董机器,我在linux下还可以做许多事情,包括:用w3m游览网页,用mysql管理远程数据库,用ftp操作网站文件,用cvs管理学习日记开源的程序源码,用emacs直接读取网站的log文件,用MilyQQ聊天(虽然我基本不用它),还有一点,在上面作些相对重要的工作我要放心点。不像在windows下,保不准什么时候就中了木马和流氓软件、病毒之类。何况是这台完全没有设防的古董机器。尽管征对我现在在这台机器上的主要的应用:看电子书,我有充分的理由抛弃linux(如上面讲的没有一个本地的翻译软件),但我还是舍不得,还是把linux留在了我的机器中。况且,难保我不会产生远程网站维护的需求。家里因为种种原因停止了上网,如果真有维护网站的需求,还得依靠我放在单位上的这台老机的linux操作系统。

redhat linux9.0中grub启动的恢复

在用fdisk /mbr时,本来想对机器上的第二块硬盘作清除主引导记录的操作,结果却把装有linux操作系统的第一块硬盘的主引导记录清掉了。现在还不知道fdisk /mbr在两块硬盘上操作的有关问题?

恢复需要进入linux的grub命令行程序,可以从两个途径进入。

一是从安装光盘设置为从光盘启动,进入安装界面后输入linux rescue,进行一系列语言、键盘等的设置后就进入了shell命令行,这时就可以进入grub程序了。

一是从其它途径(如grub启动软盘、从dos引导)进入系统工作状态后进入grub程序。

然后就是输入 grub命令如下:

grub>root (hd0,0) (hd0指第一个硬盘,后面的0指的是/boot/grub目录所在的分区,而不是指的是/所在的分区,如果你的/boot和/分别在两个分区上,就不要弄错了)

grub>setup (hd0) (是指把grub引导程序写入第一个硬盘的主引导记录,如果写成(hd0,0)是指把引导记录写入第一个硬盘的第一个分区的引导扇区中)

执行成功后会显示success的信息。

不过,我的这个redhat linux9.0操作系统挂在amd毒龙700上可以用这个方法把grub恢复到MBR中,但挂在486DX100却不行,启动报告grub read error,要用setup (hd0,0)写入分区的引导扇区才行,不知道是怎么一回事?

中国移动的服务态度还是不错的

上个月27日,我不想使用移动的GPRS5元套餐了,在网上营业厅取消了,当时移动把确认短信发给了我。告之从下月3月1日起正式生效。

这个月3月1日大概上午11点多,我试着用手机上了一下网,发现还能上网,就打10086询问服务人员为什么我取消了上网套餐仍然可以上网,服务人员答上网的功能还在,随后应我的要求取消了上网功能。我问3月1日的上网收费不?答要收费。我感觉移动有设资费陷阱的嫌疑,加之当时在大街上声音嘈杂,自己又有点生气。就不礼貌的挂了电话。

一会儿,移动发来短信,询问对刚才服务的反馈意见。我回复了5(还有遗留问题未解决)。下午5点多,10086服务人员打来电话,询问我为什么选择5,我问取消GPRS5元套餐后手机上网按什么标准收费?答:按自由套餐收。(我上网上营业厅看了一下,确实按大概0.03元//kb的标准收的,我为验证是否能上网连接了两次就是0.27元)。我说我在网上营业厅取消GRPS5元套餐后并没有信息提示我手机仍然能上网,且是按自由套餐收的费。移动应该在用户取消套餐后明确的告诉用户,取消此套餐后按自由套餐收取上网费用。最后我把自己的意见反馈了,还是有礼貌的结束了对话。

虽然我只是微不足道的小小GPRS5元的用户,虽然我的反馈不一定能使移动在网上营业厅上加上我想像中应该有的提示信息,但是我感觉,作为一个用户基本反馈程序得到了还算及时的处理,移动的这个用户反馈程序并不是虚设。在现在手机资费领域普遍的对用户不友好的大环境下,能受到移动如此的服务还是觉得不错的:)

另外,我感觉,一个企业便利、畅通、积极、有效的反馈通道是消除企业和用户之间矛盾的重要基石。比如这次,如果我心里有气有疑又不能找到出气的地方,难保我不在网络上顺便的发几句牢骚,现在国家对经济这一块在网络上的言论还是相当自由的。也难保不对移动造成那么一点点的负面影响。而由于我的意见和疑惑得到了及时、主动、有效的反馈,结果由于我的时间比较多,闲来没事,在这里发了一篇“歌颂”移动的文字。

一句话,不管怎么说,企业还是用户养起来的。

一个可以在linux和windows控制台使用的qq客户端软件MilyQQ

详见作者的博客:喋喋不休: http://spadger.blog.com.cn

现在最新的版本是MilyQQ3.0。现在的版本是c++写的,速度很快。以前的版本是java写的。

我试了一下,使用MilyQQ3.0,在我的486dx100+redhat linux9.0的真正古董级机器上也能流畅的运行,很不错。

在linux下使用前需要改变这个软件的权限:chmod a+x MilyQQ (赋与所有用户对这个软件的可执行权限)

我感觉这个软件的主要使用者还是经常使用linux控制台的人,比如像我,因为电脑太老,只能使用linux的控制台。而经常使用windows图形界面和linux图形界面的人,估计都不大会使用这个软件。

本地下载MilyQQ3.0:

附件:MilyQQ3.0.zip,316958 bytes

原创地下载MilyQQ3.0:

附件:MilyQQ3.0.zip,316958 bytes

用libstdc++.so.5冒充libstdc++.so.6欺骗mysql4.1.21

昨天在我的486+redhat linux9.0的老机上装了一个mysql4.1.0的客户端,不想连到远程数据库时,一执行use dbname;程序就会退出,报告什么sem* fault错误;

今天下载了一个mysql-standard-4.1.22-pc-linux-gnu-i686-icc-glibc23.tar.gz,解压到/usr/local,作好链接什么的,一执行mysql命令,报告缺少/usr/lib/libstdc++.so.6文件。查了一下,redhat linux9.0配的rpm包是libstdc++-3.2.2-5.i386.rpm,而不是有/usr/lib/libstdc++.so.6的libstdc++-3.4(好像是这样的)。不想去下载源码在这么老的机器上编译。于是,试着用命令: ln -s /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.6用libstdc++.so.5冒充libstdc++.so.6欺骗mysql4.1.21,结果执行mysql -hhostname -uusername -p竟然连接成功了。

不过不知道这种欺骗手段有没有什么负作用呢?

初一晚上挨打与气球又飞了:孩子的任性和固执

很久没有给孩子记日记了,但是觉得重要的现象和事情还是应该记一记的。让我们在教育孩子的过程中不要犯自己以前犯过的同样的错误。尽到一个做父母的应该尽到的责任。

我们孩子的性格是很任性和固执的。以前的日记应该都有所提及。

今年春节(2007年),初一晚上,她非要和婆婆他们睡觉,由于她在婆婆那里睡觉,婆婆会失眠。而且,爷爷也不会睡觉。孩子在他们那里睡容易感冒。所以,我们在她睡着了时候把她抱到我们床上睡。不料,她醒了。于是吵着要到婆婆那里去睡。我们给她讲道理,她不听;她妈妈吓唬她也不行;然后是她妈妈打她,打了问她还去不去,还是要去;又打,还是要去;再打,还是要去;而且是打疼了的。孩子哇哇大哭(后来几天声音都是嘶哑的)。我都不忍心了。但是看到孩子这么倔强,这么软硬不吃,就基本上和她妈妈站在同一方。坚决不同意她到婆婆那里去睡觉。不为别的,就为磨磨她的犟脾气。结果,直到她哭着睡着了,她仍然是坚持要到婆婆那里去睡觉。一句话,再打都不投降。

第二天早上醒来,她也许好像才认识到自己的错误,好像还模模糊糊的认了错的。

她的任性和固执又体现在了另一件小事上。

孩子喜欢那种上面有动画人物“奥特曼”的氢气球,上次给她买了一个,我们要把她的气球拴在她手上或在线绳上吊一个小的重物,以防氢气球飞上天。可是,无论我们怎么解释她都不听。最后,我们给她讲好,如果气球飞了就不给她买了。她表示同意。结果,下午气球就飞了。

时隔一两周的前两天,她又看见了那种氢气球,又要买。给她买了。同样坚决不许给她拴在手上或在线绳上吊一个小的重物。给她讲好,气球再飞了,一个月都不买气球了。她表示同意。下午气球又飞了。孩子哇哇的哭了。也许她知道我们不会再给她买气球了。我招呼了她的婆婆和爷爷,这个月坚决不许给她买气球。不然她总是任性、固执。

任性和固执用在好的方面可以叫着“有毅力”,但用在了坏的方面就叫着“顽固不化、冥顽不灵”了。我感觉“任性和固执”这种性格不一定要消除它,但是要教育孩子什么时候应该“任性、固执”,什么时候不应该。况且,一个人天生的性格,是不容易消除得了的。一种性格应该就像一把双刃剑,用在恰当的地方有益,用在不恰当的地方就有害了。

另外,这次春节回孩子外婆家呆了一晚上,孩子回来身上又起了红疙瘩,还发痒。医生说是到新环境的过敏;想起上次在她外婆也出现过相同的情况。看来孩子应该真的是对她外婆家的环境皮肤过敏了。

修复中病毒太深的windows操作系统

一句话,就是把带毒电脑和装有杀毒软件的正常电脑连在一起,用正常电脑的杀毒软件对带毒电脑进行杀毒;或者条件许可的话干脆把带毒电脑的硬盘取下来连到装有杀毒软件的正常电脑上杀毒。

我碰到的详细情况如下:

前几天,同事拿过来一台装有windows98系统的IBM240X笔记本电脑让我看看。现象为系统启动跳出很多对话框,在IE中打开任何一个网站都会自动跳到一个色情电影网站。

在网上根据相关现象查了一下资料,判断中了毒,根据一些帖子对注册表和部分文件作了一些处理。表面现象消失了。但是打开控制面板什么的程序还会报错。

于是,先后安装了瑞星、卡巴斯基、木马克星,均是不能启动杀毒程序,就是在安全模式下也都不能启动杀毒程序,都被病毒把杀毒进程给干掉了。要是其它系统,可能比较方便的作法是彻底格式化硬盘,重装系统。但是这个电脑比较老,估计驱动程序什么的不好找。于是,我找了一根双机互联网线,把这台带毒电脑和我的电脑连在一起。把带毒电脑上的两个分区设为共享可读写。然后,用我的电脑上的升到最新病毒库的正版瑞星软件对带毒电脑上的c盘进行杀毒,用了差不多2个小时,杀了40多个病毒,因为联机杀毒太慢了,没杀d盘。

然后,再在带毒电脑上安装了卡巴斯基、木马克星,都能启动杀毒进程了。结果用升到最新病毒库的卡巴斯基又杀了4个病毒。

至此,系统正常。

其中有两点所得:

1、必须在网络的相关设置中把“文件和打印机共享”的两个选项勾选才可共享分区,好像要把windows98的登录方式设为“windows网络登录”才能进行双机联网。

2、IBM240X插上外置软驱就从软驱启动,取掉就从硬盘启动。没有像台式电脑之类的在BIOS程序中设置第一启动设备。

还有一点感想:

我最终选择了linux操作系统作为自己的常用平台真的是一个明智的选择。用了近一年的linux操作系统了,没有在里面安装任何杀毒软件,至今没有碰到一个病毒、木马或流氓软件什么的东西。很清静。

还想到:人有时间出了大问题(如像上面中毒的电脑那样中毒太深)自己无力自我修复和解决,也许,在这个时候,寻求明白人正确有效的帮助是至关重要的。在这个时候,一个人独自钻牛角尖是很不明智的选择。

又如:据我所知,在佛教的“跳出三界外”的解脱生死中,有依靠自力的自我修行证悟的方式,也有依靠佛力的念阿弥陀佛求生净土的方式;但是,在现在的佛教所称的“末法时代”,众生绝大多数应该是“中毒太深”,所以,能依靠自力解脱生死的人少之又少,绝大多数还得依靠佛力念阿弥陀佛求生净土而得以解脱生死。

Windows"记事本"程序小技巧4则(含自动添加当前时间和日期)

转自:“记事本”另类玩法: http://article.pchome.net/00/00/82/51/

(转载者前言:windows的记事本程序很简单吧?可就是这个简单的记事本程序,在上次的职称计算机应用考试中把我难倒了,题中要求:在每次记事本打开时,自动添加当前日期,请问:应在记事本时输入什么?答案即为本转帖的最后一招:为记事本文件添加日志)

正文:

*******************************************************************************

“记事本”另类玩法

CNET中国·PChome.net   类型:   作者: 网友   责编:滴滴   时间:2003-03-18

右键打开记事本

安装ACDSee、WinZip等软件后,其程序项目会出现在系统的右键菜单中,以方便用户调用

程序。我们也可将记事本放入右键菜单后,只要对文件点击右键,选择“记事本”,便能

快速地调用记事本打开该文件。

在右键菜单中加入“记事本”项目的方法如下:运行注册表编辑程序Regedit.exe,打开[

HKEY_CLASSES_ROOT\*\shell]子键,在“shell”下新建一个“记事本”主键,在“记

事本”下新建一个“COMMAND”主键,选定“COMMAND”,双击右部窗口中的“默认”,在

弹出对话框的“键值”文本框中输入“notepad.exe %1”,最后关闭注册表编辑器。

一键打开记事本

“一键拨号”、“一键登录网站”、“一键打开”曾流行一时,我们也可以为记事本程序

设置“一键打开”功能。方法是:依次单击[开始]→[程序]→[附件],对“记事本

”点右键,[属性]→[快捷方式],在“快捷键”处指定快捷键,按[确定]即可。

一点提示:只能为桌面上或开始菜单中的快捷方式设置“一键打开”。

发送文件到记事本

将记事本放入“发送到”菜单中,这样用户只要对某文件点右键,再选择[发送到]→[

Notepad],就能快速地调用记事本程序打开该文件(当然有个前提是,此文件能被记事本

打开)。

在Windows 98的“发送到”菜单中添加记事本程序的方法是:在“我的电脑”中打开C:\

Windows\Sendto文件夹,单击[文件]→[新建]→[快捷方式],在“命令行”文本框

输入“Notepad”,接着单击[下一步]和[完成]。在Windows 2000/XP下方法类似,只

是“Sendto”文件夹所在位置略有不同,你应该选择你的用户属性下的“Sendto”文件夹

为记事本文件添加日志

记事本可以为文档自动添加时间日志,不过很多人并不了解这个功能,虽然它的用法就写

在记事本的“帮助”中。具体方法是:在文本文件的开始位置,也就是第一行的最左侧输

入内容“.LOG”(不输入引号,注意点号必须是半角符号,英文字母为大写),将文档保存

后,每次用记事本程序打开该文件时,文档的末尾处将自动写入当前时间和日期.

******************************************************************************

                       转帖完毕

如何迅速成为Java高手(cjsdn)(转帖)

转自:如何迅速成为Java高手(cjsdn): http://www.javaresearch.org/article/17565.htm

(转载者littlebat注:从http://www.javaresearch.org/article/17565.htm上cherami的转载日期:2004-09-29 22:10:14可以看到,这篇在互联网上广泛转载的文章应该至少是27个月之前发表的,其间,Java技术也有了很多变化,所以阅读者应该知道这个时间概念。所以,对互联网上的文章来说,发表的原始出处和发表日期非常重要,尤其是对飞速发展的IT技术来说。)

转帖正文

*********************************************************************************************************

如何迅速成为Java高手(cjsdn)

cherami 转贴   更新:2004-09-29 22:10:14  版本: 1.0  

很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!

要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。所以现在应用最广泛又最好学的就是J2EE了。J2EE又包括许多组件,如Jsp,Servlet, JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。

那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补 HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。然后你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?还好,SUN提供了Javabean可以把你的JSP中的Java 代码封装起来,便于调用也便于重用。接着就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和 Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的Weblogic, Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail了。

好了,对 Java和J2EE有了一些基本概念之后,你就应该编一些程序了,千万不要纸上谈兵哦。最好找一些有实例且带光盘的书来看,这样看到好的程序就可以直接 Ctrl+C再Ctrl+V,也不用劳您老大架再亲自把它 再输一遍吧,再说直接复制还不用怕出错,何乐而不为呢!还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。下面介绍几个好的Java方面的编程网站:

CSDN论坛 http://www.csdn.net/ 中国最有名的技术论坛,《程序员》杂志就是他们出版的,你可以在上面提出问题,马上就有人回答你,如果你觉得好,你可以给那人加分;

Java研究组织http://www.javaresearch.org/ 上面有很多原创文章,高手还是挺多的;

Java开发者 http://www.chinajavaworld.com/ 那里Java资料比较全;

java.com.cn http://www.java.com.cn/ 看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的;

IBM的开发者网络http://www-900.ibm.com/developerWorks/cn/java/index.shtml IBM永远的蓝色巨人;

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。所以你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他还愿意不厌其烦地教你,这样好象有点难哦!

还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。学Java必读的两个开源程序就是Jive和Pet Store.。Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本?J道。Jive(J道版)是由中国Java界大名鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站http://www.jdon.com/  去下载,或到同济技术论坛的服务器上ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。Pet Store. (宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要错过了。

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。关于设计模式的资料,还是向大家推荐banq的网站http://www.jdon.com/ ,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。有时间再研究一下MVC结构(把Model-View- Control分离开的设计思想)吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring(重整)和极限XP编程,相信你又会上一个台阶。

做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧,你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以 Money就哗啦啦的来了。。。。。。

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

下面介绍两个好的开源项目网站:

湖北省软件公共开发平台http://gro.clinux.org/

共创联盟http://cosoft.org.cn/

哇,好高兴哦,我终于成为高手了!非也,非也。古人云:“识时务者为俊杰”。你知道计算机界现在的发展形势吗?你知道微软的.NET蓝图和SUN ONE计划之间的明争暗斗吗?你知道计算机技术将向何处发展吗?其实从各大计算机厂商最近的动作,都可以看出来“Web服务将是下一代互联网应用的制高点”,而微软的.NET蓝图和SUN ONE计划的斗争焦点,也就是Web服务。Web服务就是一个崭新的分布式计算模型,它是一系列标准的综合(XML,SOAP, UDDI,WSDL和WSFL等)。它使得不同语言编写的软件能够轻易的集成起来,使网络资源和Web站点变成一种服务而不是混乱的垃圾场。不远的将来,我们就可以在家里点击一下鼠标,就可以完成出门旅游的全部准备工作,包括定飞机票,定旅游线路,定好房间等。请注意,这所有的一切都是Web站点间自动完成的,再也不用象现在一样,表面上是电子商务,实际上很多环节都是人工操作。也许你会觉得这是天方夜谈,不过就近的说,你也很有可能承接一个项目,要集成两个企业的ERP系统。很有可能上游企业的系统是用Dephi编的,而下游企业的系统是用Java编的。你说你是Java高手,大家都看者你怎么做呢。所以啊,你还得学习新技术,如Web服务,而且你Dephi也要懂一点吧(Dephi6现在已经提供Web服务的控件了)。 你编的Java系统,可能要和.NET集成,所以你.NET要懂一点吧?到最后,你可能发现你已经成为Java高手了,但很多时间却在搞别的技术。太极张三丰里说,最厉害的招式就是没有招式,可能就是这个道理吧!

因为刚刚兴起,所以网上Web服务的资料不是很多,我还是给大家推荐几个网站吧:

中国UDDI技术联盟http://www.uddi-china.org/

CSDN的柴晓路专栏http://www.csdn.net/develop/author/ColumnAuthor/fennivel/ (注:柴晓路也是互联网上一个有名的人物,他发表过很多关于Web服务的文章,还出了一书,应该称的上是中国Web服务技术的先行者)

IBM的开发者网络的XML&Web Service专栏:

http://www-900.ibm.com/developerWorks/cn/xml/index.shtml?csdn IBM可是Web服务的力推者

呜…你费劲千心万苦,总算成为Java高手了,怎叫人不由喜极而泣呢!是啊,真不容易,真不简单,真叫人感动啊!那么打个电话告诉我吧,什么?我的电话号码是多少?昏到,你打电话问不就知道了吗,真是的……

********************************************************************************************************

                                                                    转帖完毕