星期日, 三月 29, 2009

kill命令信号说明[Linux技巧]

kill的manpage中说明这个命令并不是像字面上理解的杀死进程,而是向进程发送一个信号signal
,manpage中有详细的信号代码表,kill默认的信号是-15 SIGTERM。这个信号允许进程先释放所占用的资源,然后自行退出。有时一些进程占用资源不能释放,所以kill就不起作用。今天用eclipse时遇到了这样的情况。可以使用kill -s 9来解决,向进程发送SIGKILL信号,进程不进行资源的释放,直接退出。

参考文献:
  1. Linux kill man page
  2. http://aplawrence.com/SCOFAQ/FAQ_scotec6killminus9.html

星期六, 三月 28, 2009

使用Shadow保存密码[Linux技巧]

在Linux系统中,可以使用/etc/passwd和/etc/shadow来保存用户密码和一些相关信息,其区别是/etc/passwd可以被普通用户读取,而/etc/shadow只能被拥有root权限的用户读取,所以使用shadow的安全性更高,因为除了root权限的用户,任何人都不能读取其内容。

Ubuntu中使用两个命令来打开和关闭shadow密码保存方式:

#shadowconfig on #使用shadow保存密码
#shadowconfig off #使用passwd保存密码
注:在启动shadow保存密码后,相关的用户操作和组操作命令都需要root权限进行,例如:id命令将不能输出全部的组信息,需要sudo id来完成任务。

星期三, 三月 18, 2009

FSF的一小段历史

刚刚看完OS Revolution,其实完全是被开篇的一句I‘m your worst nightmare~~所吸引就看了下去,同时也是Linus和RMS等大牌的影响,将FSF发展简要介绍一下。

在20世纪70年代末以前,计算的硬件是收费的,而软件是可以免费共享的,那时候的人根本不知道软件的知识产权为何物。后来由于BG发表了BASIC后,他认为软件质量上不去是由于使用者没有对开发者付费,由于没有收入,所以就没有好的软件、书籍和文档,他是主张软件知识产权的先锋。

在提出了软件的知识产权后,公司纷纷将自己的源代码保护起来,很多人由于不能得到源码,所以一直用着蹩脚的软件。很多有能力修改软件的人也由于法律和源代码的保护只能忍受开发者的功能缺陷,即使你有对软件改进有益的想法,你也不能合法的获得源代码。

这时,RMS出现了!他1971年进入MIT的人工智能研究室工作,不久就融入了一个活跃的HACKER组织,和他们共同完成了一个操作系统。但是由于当时商业上的影响,他们被要求在这个系统中添加一个登录程序。当时他们完成这个系统的理念就是希望每一个坐在这台机器前的人都能自由的完成他自己的任务,而不受别人或者前一个使用者的控制。他们被要求添加的登录程序恰恰就是管理员用来控制用户的工具!这个登录程序加入后,RMS就HACK了那个系统,破解了密码的加密算法,然后给每个用户发信息,告知我已经得到的密码,并建议用户简单的使用Enter作为密码(就是不设置密码)。谁知这个建议竟然被20%的用户采纳了!

在1984年,RMS辞去了MIT的工作,着手创建GNU项目,当时UNIX是商业授权的操作系统,他不得不自己开始写一个类似UNIX的系统,但是不能使用UNIX的任何一行源码。后来越来越多的人通过网络加入,他们把一个个UNIX的小程序改写出来,到1991年就全部完成了。到了这时他们才发现,他们已经有了compiler,debugger等许多工具,唯一缺少的就是kernel了。其实他们早就发现了这一点,但是他们的设计理念限制了他们自己内核的开发。

由于长期使用UNIX系统,他们的哲学就是:一切皆文件,每个程序只完成简单的单一功能,运用小程序叠加出强大的功能。GNU的内核被设计成许多小程序,它们之间使用消息通讯,虽然是高层次的设计,但是由于复杂的消息时序,就造成了这个内核调试代价极大同时不够稳定。在这时Linus出现了,他来的太是时候了。

起初的Linus开发Linux是为了自己能方便的使用PC,开始他只自己单干,也不知道有RMS和FSF以及GNU项目。由于要编译源码,他必须找一个免费开源的编译器,而后他发现了GNU项目的一些成熟的成果,而RMS也发现了Linux这个kernel,他们一直寻找的东西。二者可以说是一拍即合,Linus本人非常认同GPL的理念,而RMS也为GNU项目找到了最后急需的一缕东风!

在Linux和GNU项目联姻后,并没有迅速的发展起来,原因是没有合适的应用。知道另一个被大家熟知的开源软件(或者说是基金会)出现,那就是Apache!你现在浏览的网页有66%的可能就是出自它之手,Linux与Apache的组合,可以说是大大降低了ISP的运营成本,同时Apache最先支持了虚拟主机,而同时期的IIS和NT并没有这种功能。这时,由于Linux的低成本、稳定和效率,Apache的定制性和扩展性,Linux一发不可收拾,成为了Web Server的绝对领军人物。也正是这种开放共享的精神,造就了一个不同寻常的OS Revolution!

星期一, 三月 16, 2009

群组和圈子,你还记得吗?

圈子时代,我还在占坐

当年校内还没有和5q合并的时候,我还在一个叫占坐的SNS上。可能知道国内SNS比较早的用户知道这个网站。当时占坐抽奖十分火爆,学校里有很多同学拿到了印有占坐LOGO的站衫,据说学校还有一个同学拿到了自行车。

那时候的占坐和5q基本是不相上下。由于国内的SNS基本都很封闭,而且功能上都是基本相同的,没什么特色和创新性,我的很多同学进入了校内和5q,我自然也就如同现在不情愿的还是QQ一样被拉下水了。进来之后,我发现圈子这功能不错,能结识很多知趣相同或相近的朋友,这比在论坛里大海捞针强多了。



校内收购,占坐没落

这个时期校内和5q结合,由于用户会把自己的同学和同事带入相同的SNS网络,合并后的校内发展迅速,而且积极拓展白领和高中用户群体。虽然后来有面向白领的SNS开心网,但是这时校内已经基本占据了中国SNS网络老大的地位。也是这个时候我知道了MySpace和Facebook,由于校内和 Facebook界面风格极其相似,我还对这点比较不满。

后来发现校内还是有一定创新性的,开发了猫游记,我那时候天天点阿点,做任务。这是我第一个接触的没有任何客户端的网页游戏,就是不兼容Firefox,比较遗憾。也正是这个时候我开始使用Ubuntu,并且加入了校内的同名群组,现在有好几个好友都是在这个群组里结识的。而且通过群组卖掉了陪我大学四年的电脑。



网络整风,群组关闭

由于Web2.0的核心理念就是为用户提供平台,让用户创造数据和内容,所以对于这种类型的网站,管理者很难进行内容审查,只能依靠有限的人力抽查和用户据报不良内容相结合的方式来进行工作。09年初,国家组织了政治互联网俄专项行动,很多著名门户网站都遭到了点名警告,限期整改等处理,当然这其中也有校内这样的SNS网站。

校内在这之后就以审查内容为由,关闭了群组,但是没有提到具体的整改期限。于是我那时天天看我的应用菜单什么时候群组能再出现,一段盼望的日子开始了。



群组归来,遥遥无期

在这一段盼望的日子中,群组曾经几次出现但又几次消失。起初只是有一个链接,但是进入群组首页没有任何内容。后来由于效益刺激,一些用户量大的应用讨论群开放了,紧接着是一些网络的群组,例如各个大学的群组,而像Ubuntu这样的小众群组的归来似乎就遥遥无期了。实际这些小的,用户量少的群组才是群组真正价值所在,才是真正志同道合者的栖息地。通过它们,你很快就能找到与自己有相同兴趣的人,与这些人讨论是一种快乐。




God Bless!我们的群组快点回来,现在已经很尴尬了,再拖下去会更加尴尬......

除数是一位数的除法

星期日, 三月 15, 2009

Linux中的用户组设置[Linux技巧]

用户与组有关的命令:
  • useradd 添加用户,添加时可以设定用户所在的组
  • userdel删除用户
  • usermod在添加后,可以使用这个命令修改用户所在的组
组相关命令:
  • groupadd 添加组
  • groupdel 删除组
  • groupmod 修改组
Linux的权限系统分为三级
  • 拥有者,文件的创建者
  • 组权限,组中的用户
  • 其他用户,系统中注册的所有用户
这里组权限有一些说法,用户和组是多对多的关系。一个组可以有多个用户,一个用户可以加入多个组。那么这个组权限就有说法了,针对哪个组呢?每个用户都只能有一个当前有效的组,组权限就是针对这个组说的。

使用id命令可以查看当前的有效组,就是gid所指的那个。
使用newgrp命令可以修改当前用户的有效组。

参考:http://www.91linux.com/html/linux_pub/ubuntu/20090120/15442_2.html