你最喜欢的*痛苦的*Unix时刻是什么

Lar*_*ier 34 untagged

分享您最喜欢的经验教训时刻如何?

she*_*run 67

我很好奇是否 chmod 000 /可行。

嗯,完美无缺。几分钟后,我正在寻找救援 CD。

  • 哇,我从来没有考虑过,直到你提到它。不错的。 (11认同)

Lar*_*ier 37

当我刚开始在我就读的大学担任用户顾问时,我被授予了有限的sudo权利来帮助丢失/忘记密码的学生。 sudo passwd <username>是我的新朋友。入职培训一小时后,我的好奇心战胜了我,我输入sudo passwd了密码,惊恐地盯着输入新密码的提示。我有点害怕^C摆脱它,认为(事实证明是错误的)我可能会将问题帐户留在临时状态,所以我输入了密码,然后立即上楼去了神圣的二楼域校园超级用户,问他是否想知道主系统的root密码。

  • 您可能在第二次确认提示时输入了不匹配的密码,因此不会受到任何影响,并且 passwd 将退出。 (30认同)
  • 呵呵,拥有!困惑的副手:P (4认同)

小智 32

令人惊讶的是没有其他人提到过这个:

rm -rf .*
Run Code Online (Sandbox Code Playgroud)

(在尝试删除所有隐藏文件和子目录时,完全忘记了它会递归到...

  • 我一直这样做,在各种平台上。在 OpenBSD、NetBSD、Linux 和 OpenSolaris 上按预期工作。 (7认同)
  • 虽然这在过去让我很痛苦,但现在很多版本的 `rm` 不会这样做了。我在 Darwin 上试过,得到了错误 `rm: "." 和“..”可能不会被删除`。 (3认同)

Ale*_*x B 31

生成文件:

clean:
    @rm -f * .o
Run Code Online (Sandbox Code Playgroud)

当然,这会make clean擦除您的源代码,而不仅仅是目标文件。

课程:使用版本控制。

  • 如果看不到,请注意 `*` 和 `.o` 之间的空格字符 (11认同)

Jos*_*h K 30

让一个朋友:() { :|:&}; :在我们没有控制台访问权限的远程服务器上运行。无法重新启动它,完全冻结,生产服务器

分解(按要求)以使其更具可读性。

:() # Define ':' as a function. Every time we say ':' execute the following code block
{ # Start of code block
    : # Call ':' again. 
    | # Pipe output to...
    : # Another ':' 
    & # Disown process. 
    # All on one line this would read :|:&, 
} # End of code block
; # End definition of ':' as a function
: # Call ':'
Run Code Online (Sandbox Code Playgroud)

将其视为可能更容易

bomb() { bomb|bomb& }; bomb
Run Code Online (Sandbox Code Playgroud)

  • 看起来像一个叉子炸弹。**除非你真的知道你在做什么,否则不要尝试这个。** (23认同)
  • http://www.cyberciti.biz/faq/understanding-bash-fork-bomb/ (8认同)
  • 是的。这是一个叉形炸弹。一个不错的 :) 它似乎分叉了 bash 解释器,因为它无休止地尝试解析它。如果你跳过最后一个`:`,它什么都不做。而且它根本不使用内存,只是分叉了很多。[是的,我确实尝试过:)]。可以通过每个用户的进程数配额来阻止效果。 (5认同)
  • +1 以上评论。这比看起来容易理解得多。 (4认同)

小智 29

我的意思很好,我真的做到了。试图chmod递归一个目录并最终.//.

当然是根,因为只有有了根,才能达到真正的痛苦(进而证悟)。

  • +1 引用“只有拥有根才能实现真正的痛苦(从而获得开悟)。” (23认同)

Tom*_*ter 21

我不小心擦除了主驱动器的分区表,以为我在另一个驱动器上工作。

通过回滚、小心使用df、内存和运气,我能够准确地重新创建它,重写它,重新启动,并希望......并且它起作用了。

  • 一个朋友这样做了,我帮他恢复了桌子。不幸的是,我们没有分区大小和偏移量的先前值,因此我们使用带有 `dd` 的 bash 循环读取通过管道传输到 `file -` 的每个柱面的第一个 4k 块以找到超级块,从而找到文件系统。这是在一张实时 CD 上,没有足够的 RAM 来完成我们需要做的所有事情(包括安装一两个包),所以我们通过管道进入另一台机器上在 ssh 中运行的进程。 (6认同)
  • 哎哟。这就是为什么我总是使用 `sfdisk -O` 来备份分区表。仅供参考:http://www.cgsecurity.org/wiki/TestDisk 可以自动化@Neil Mayhew 所做的事情。 (2认同)
  • 我也在那里,`testdisk` 救了我的盒子 (2认同)

mig*_*aza 19

不是我的时刻,而是别人的时刻。

当我在核科学研究机构工作时,我们曾经运行许多 SunOS、Ultrix 和 Linux 计算机,研究人员不得不在这些计算机上共享 CPU。由于各个研究小组获得了自己的研究资助,他们购买了自己的计算机,主要是 SparcStation,并且他们自己进行系统管理。

SunOS 曾经附带 OpenView 桌面和一个不错的文件管理器,它是这样的: 替代文字

我们的大多数研究人员都以 root 用户身份运行,并且不止一次我们不得不重新安装他们的操作系统,因为有人决定整理根目录并将 /bin、/etc、/tmp 和其他所有使视图杂乱无章的内容移动到任一目录中垃圾桶或某些子文件夹。

其他用户选择整理 /bin 目录并删除他们不知道的任何命令。

幸运的人有备份,大多数人购买了磁带驱动器,但没有自己运行备份的传统。

  • TRWTF 是他们在核科学研究设施中以 root 身份运行! (41认同)
  • 整理根目录?真的吗?*真的吗?* ***抽泣*** (11认同)
  • 很酷的截图!让我都很怀旧。 (4认同)

Lar*_*ier 18

早在 90 年代中后期,我和我的一个朋友就在讨论rm -rf *Linux 机器的愚蠢之处以及在什么时候会崩溃。我们进入了静态链接库和动态链接库,我假设系统可以在没有的情况下很好地运行/lib,然后继续在我的工作站上重命名它。 糟糕的事情发生了,但是我们留下了几个打开的控制台窗口来尝试修复损坏(不再可以选择关闭)。没有一个编辑器会运行。您可以为该echo命令找到深奥的用途,真是太神奇了。

  • 有一个关于这个确切主题的经典故事:http://lug.wsu.edu/node/414 (19认同)

Ste*_*ski 18

viCaps-Lockvs。/etc/passwd

  1. 使用不能正确刷新屏幕的旧串行终端连接到旧 Solaris 机器。
  2. su -
  3. vi /etc/passwd. 没有vipw,而且“我们只是在做一些小的编辑”。
  4. 按下Caps-Lock键,不要注意到。
  5. 点击j几次以向下滚动。忽略您实际上只是键入了J("Join")这一事实,它将这一行与下一行结合在一起。串行终端屏幕未正确刷新,因此您没有看到您只是将前 5 行合并为一个 Loooooong 行,从而破坏了前 5 个用户(“root”、“daemon”等)。
  6. 完成对文件的其他预期编辑,在底部向下。
  7. 保存存档。
  8. 登出。

我做过一次。令人惊讶的是,该系统在数月内仍能正常运行。Cronjobs 运行良好,日志文件中没有明显错误。

直到几个月后我们重新启动系统并且无法在控制台登录时,我们才注意到这个问题。ps显示了 UID '0' 而非用户 'root' 拥有的一堆作业。

您无法以 root 身份登录,也无法运行susu -,并且sudo此框中没有。没有软驱,CD-ROM 坏了,没有 USB 端口(所以没有外部 CD-ROM)。单用户模式不起作用,因为您需要输入 root 的密码,而该密码来自/etc/passwd.

  • “J”肯定是“Join”(如将行连接在一起)命令? (2认同)
  • 等一下,我不需要输入密码来启动到单用户模式。事实上,如果我丢失了root密码,这就是我重置root密码的方式。还是与旧时代不同? (2认同)

小智 18

rm -f * ~
Run Code Online (Sandbox Code Playgroud)

rm -rf ${DIR}/
Run Code Online (Sandbox Code Playgroud)

什么时候DIR没设置!

  • 你的意思是`${DIR}`?因为 `$(DIR)` 会尝试执行 DIR 命令。 (4认同)

pol*_*mon 16

我记得我试图向SysRq远程机器发送一个按键序列......

……却被当地人抓到了。


ech*_*hox 14

halt几秒钟后简单地识别出我不在本地外壳上并且无法再次打开生产服务器的电源。

得到教训?机器的提示现在看起来像

[ --> root <-- @kompost:/home/echox] #

带有一些漂亮的红色标记;-)

  • 有一个名为“molly-guard”的工具可以检查您是否远程登录并询问您是否真的要这样做。 (6认同)

max*_*zig 13

我最喜欢的时刻是,当一位 emacs 用户的同事想要编辑一个重要文件时。

因为emacs打字太多了,他为emacs:设置了一个别名:

alias em=emacs
Run Code Online (Sandbox Code Playgroud)

在咖啡不够或太多的影响下,他当然打错了em……

好吧,这只是使用vi...的另一个原因……;)


Dav*_*ley 11

或者另一种体验,如何在几个简单的步骤中感觉自己真的很愚蠢,而这些步骤在个人看来并不那么愚蠢。

第一步:为孩子建立一个帐户,以防他想使用Linux box。给它一个简单的密码,因为毕竟这是一个家庭系统,不会暴露在网络上。

第二步:让时间流逝,这样你就不会记住第一步。

第三步:打开防火墙中的SSH端口(其实就是路由器上的NAT)以便ssh进去。毕竟我的账号密码还不错,也没什么大不了的。

第 4 步:从 ISP 获得通知,表明有某种 DOS 活动正在访问瑞典站点。假设它可能是 Windows 盒子,并检查并加固它们。

第五步:从 ISP 那里得到通知,它仍在继续。询问一些细节,获取瑞典站点的 IP 地址,启动 Wireshark,找出攻击来自哪个盒子。

第六步:清理Linux盒子,感觉很傻。发现登录名来自罗马尼亚地址。删除没有正确密码的帐户。

  • 当打开 SSH 到互联网时,永远不要允许密码认证。只有公钥/私钥身份验证,这样您就不会措手不及。 (4认同)

Dav*_*ill 11

我上大学的时候,在计算机实验室里,他们有一个屏幕保护程序,可以模拟一堆来回漂浮的球。他们用模拟重力拉着每一个。

有一次,当我搞乱设置时,它因错误而崩溃 Error: force on balls too great


Nei*_*hew 10

我曾经为 Unix 开发设备驱动程序。它有一个指针问题,在测试期间它开始注销内核内存中数组的末尾。我发现这一点很慢,并没有立即按下重置按钮。驱动程序已经在磁盘缓冲区缓存中乱涂乱画,然后在我点击重置之前将其刷新到磁盘。很多块都是 inode 和目录,我最终得到了一个完全废弃的文件系统。我认为lost+found在我放弃并重新安装之前,已经放入了 6000 个孤立文件。幸运的是,这只是一个测试系统,而不是我的工作站,上面有我的所有文件。


xen*_*ide 8

删除了 /etc 然后恢复了它。我不认为我吸取了教训...我也不得不从删除中恢复/bin。当我使用chroot.


nau*_*tur 7

在我学习计算机科学的第二年,我们接到了一项家庭作业,用 C 语言编写一个程序,该程序会产生许多子进程,fork并使它们与“循环”中的管道进行通信,并找出哪个应该是“领导者” ”。

那时我们还是个菜鸟,大多数人没有任何 Linux 机器,所以我们在我们教职员工的主服务器上处理我们的帐户(该服务器还托管官方网站和教职员工帐户和网站)。大多数人在尝试做功课的某个阶段写了叉形炸弹。我的小组中有超过一半的人拿到了abusers文件。这是该服务器在很长一段时间内的最高负载:)


jyz*_*jyz 7

这是去年发生在我身上的事。我正在使用临时变量从服务器中删除一些文件:

rm -rf ${prefix}*
Run Code Online (Sandbox Code Playgroud)

你猜怎么着?变量$prefix未定义!
你可以想象灾难......它导致一些非常重要的文件被删除。

差点摔坏了Control-C跑到CPU上拔网线!!

哈哈哈我敢肯定有人已经这样做了......


Jus*_*ier 7

去年,我的一位同事使用我们的一个 linux 工作站使用该dd命令创建闪存磁盘的副本。他不小心输入了类似以下内容:

dd if=flash-image.img of=/dev/sda1
Run Code Online (Sandbox Code Playgroud)

当他意识到自己的错误时——覆盖了机器的硬盘而不是闪存驱动器——机器已经被冲洗掉了。我们不得不重建盒子,顺便说一下,它也是当时托管我们所有开发虚拟机的机器......

  • +1 -- **非常非常*非常*小心`dd`!!!** :-) (2认同)

小智 6

当我的大学决定将无线网络切换为使用专有 Cisco LEAP 身份验证时...

开始了一场非常漫长的战斗,结果已经足够好了。为想要运行 Linux 并可以访问 Internet 的其他人编写文档。六个月后,他们决定也添加 PEAP 支持。打脸

这是我的最爱,因为我赢了。我让它工作。


Kev*_*n M 6

我是 Linux 课程的实验室助理。其中一名学生叫我过来,因为她不能再打电话了,因为她su -越来越多permission denied。好吧,她记错/输错了密码。重新启动到单用户模式并重置。什么?!su还是不行?!它必须屈服于我的意志!所以我重新启动到单用户模式以找出她做了什么。我意识到她跑了chmod -R 777 /var/www/html/drupal-6.19 /

注意目录名和最后一个斜杠之间的空格。

在“我真的不想让她重新安装,所以这是做什么以及如何做。”几分钟后,我设法发现 /bin/su 现在具有777. 这也可以作为 的文件权限读取0777,它从 中删除了 setuid 位/bin/su。很快chmod u+s /bin/su,我是一个英雄。

  • 这是你唯一需要改变的东西才能打破她的系统吗? (5认同)

lam*_*cro 6

作为 Solaris 上的 root,

$ kill -9 1
Run Code Online (Sandbox Code Playgroud)

......一切都失败了。

我的朋友因此被解雇了。


Den*_*aia 5

没有那么痛苦......但一个有趣的小时刻:

我输入了错误lssl,结果发现,系统管理员有一些安装了这种情况。

(已经在DebianUbuntuGentoo,... 存储库中可用)

  • 这更像是一个复活节彩蛋,而不是一个痛苦的时刻。我在遇到它之前就读过它,但我从来没有发现自己打错了,所以没有 +1。 (4认同)

小智 5

我曾经工作的一家公司的产品在 SCO 上运行。我正在调试我们的演示服务器上的应用程序变得非常慢,同时有一群客户正在接受有关即将推出的新功能的演示/讲座。

所以,我运行了曾经卡住的应用程序,在它上面做了我的事情来验证根本原因,但由于它仍然“卡住”,我试图杀死它:

pkill -9 mytestapplication
Run Code Online (Sandbox Code Playgroud)

我学到的是 pkill 在 SCO 上的表现与在 linux 上的表现不同 =)

...它基本上杀死了用户可以访问的所有内容,并且使用 root ... 这就是一切 =)


小智 5

git init
git clean -f
Run Code Online (Sandbox Code Playgroud)

这不会删除存储库。这将删除不在存储库中的所有内容。

在尝试摆脱现有的 repo 并再次启动源代码控制后(在项目的第一个完成版本上),这两个命令破坏了我的整个代码。