LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1090|回复: 11

千万不要在BASH下运行这个命令!

[复制链接]
发表于 2005-8-10 06:15:26 | 显示全部楼层 |阅读模式
  1. :(){ :|:& };:
复制代码
发表于 2005-8-10 06:34:40 | 显示全部楼层
配置/etc/security/limits.conf的nproc

下面的C代码与上面的脚本功能相似.
#include <signal.h>
#include <unistd.h>
int main()
{
        int i;
        for(i = 0; i < NSIG; i++)
                signal(i, SIG_IGN);
        while(1)
                fork();
        return 0;
}
回复 支持 反对

使用道具 举报

发表于 2005-8-10 07:30:22 | 显示全部楼层
我仍然不明白这个是什么意思!
谁能解释一下?
回复 支持 反对

使用道具 举报

发表于 2005-8-10 07:46:43 | 显示全部楼层
不停的创建新进程,被创建的进程也在不停的创建新进程,.....。进程数以几何级数整加。
回复 支持 反对

使用道具 举报

发表于 2005-8-10 07:52:31 | 显示全部楼层
恩,默认情况下,因为这些资源是不受限制的。你可以执行bash内置命令
$ulimit -a
看你所受的限制。默认情况下,你可以通过消耗光所有swap,用光所有pid,来使系统崩溃。
解决方法就是对其进行限制,方法是修改这个文件:
/etc/security/limits.conf
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-10 08:05:41 | 显示全部楼层
){ :|:& };: 的另外一个版本:


  1. fvck () {
  2.     fvck | fvck &
  3. };

  4. fvck
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-8-10 08:07:17 | 显示全部楼层
wangxiaohu兄,对搞破坏很有研究哦!
回复 支持 反对

使用道具 举报

发表于 2005-8-10 11:23:54 | 显示全部楼层
  1. :(){ :|:& };:
复制代码

其实就是定义了一个 : 函数

用 : 只是为了耍酷
回复 支持 反对

使用道具 举报

发表于 2005-8-12 21:44:29 | 显示全部楼层
)(:&}::
也就可以了

bash 支持用 :  作为函数名称
回复 支持 反对

使用道具 举报

发表于 2005-8-12 21:50:14 | 显示全部楼层
不过瘾的就试试这个吧

while [ 't' ] ; do mkdir t ; cd t  ; done
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表