为什么Linux允许用户删除根目录?如果删了会怎样?

系统 Linux
为什么Linux允许用户删除根目录?这个问题看上去也并不是一个吸引人的话题,很多学习Linux的朋友可能也没意识到这个问题,对于Linux这个精细的系统,很多较危险的命令都做了一定的防范,但是为什么最危险的命令却没有禁止执行!

为什么Linux允许用户删除根目录?这个问题看上去也并不是一个吸引人的话题,很多学习Linux的朋友可能也没意识到这个问题,对于Linux这个精细的系统,很多较危险的命令都做了一定的防范,但是为什么最危险的命令却没有禁止执行!

 

[[221728]]

一个朋友今天突然问我这个问题,我一时也回答不出,大多数情况下我们没有人会执行这个命令,这会破坏我们的操作系统,但是这种情况又比较容易发生,那么这个命令可以执行的原因出于偶然?

经过在一些社区的寻找,终于在一个网站上看到Ben N的回答,他的回答如下:

以root身份登录或使用sudo,实际上是在对机器说:“我知道我在做什么。”防止人们做出可疑事情通常也会阻止他们做出聪明的事情。

此外,还有一个非常好的理由允许用户对根目录进行操作:彻底删除操作系统和文件系统以使计算机退役。(危险!在某些UEFI系统上,rm -rf / 也可能会损害物理机器。)

显然,人们不小心执行了这个命令,以至于增加了一个安全功能。rm -rf /在大多数系统上什么也不做,还提供了-no-preserve-root,并且你无法偶然输入。这也有助于防范写得不好但是意图良好的shell脚本。

 

图1:为什么Linux允许用户删除根目录?如何删了会怎样?

意思就是如果没有指定–no-preserve-root这个参数,GNU rm 将拒绝执行这个命令,并且只输入rm -rf /也并不会执行删除根目录下文件,小E在Ubuntu上进行了测试,测试结果如下所示:

 

图2:为什么Linux允许用户删除根目录?如何删了会怎样?

我执行了rm -rf /*的结果如下,正在疯狂的删除系统文件

 

图3:为什么Linux允许用户删除根目录?如何删了会怎样?

但是过了一会没有反应了,我按下Ctrl + C停止,页面如下,还是可以出现输入框

 

图4:为什么Linux允许用户删除根目录?如何删了会怎样?

但是一些命令无法使用,但是到可以随意切换目录

 

图5:为什么Linux允许用户删除根目录?如何删了会怎样?

这就意味着有些系统文件还是删不掉的,执行一些相关命令看样子还是可以执行的,所以正如Ben N所说,当你使用root用户登录,或者使用sudo使用这条命令时 ,就在对系统表示“我知道我能做什么,我很清楚自己做的事情意味着什么”或者大家也可以这样认为Linux在设计这条危险的命令时,并没有屏蔽,是因为在我想让我的电脑退役时,删除电脑的文件。

所以在一般使用Linux是,一般不要使用权限过大的用户,对于一些常需要操作的目录大家可以使用root用户设置权限为777,或者是将你常用的用户加入root用户组等等,这样也方便操作,也能防止一些初学者的误操作导致系统崩溃等。

责任编辑:未丽燕 来源: 代码湾
相关推荐

2016-12-19 09:02:05

Linux Shell删除跑路

2016-11-21 21:28:51

根目录日志代码

2015-12-07 10:49:43

卸载App用户体验

2014-12-31 10:02:14

Android可穿戴设备世界

2015-01-05 10:26:14

Android手机厂商

2012-05-02 10:08:51

桌面Linux微软

2016-08-19 01:59:22

APPAPM用户

2023-11-27 07:53:44

2017-01-05 18:43:58

闰秒Linux服务器

2020-05-26 09:09:43

Linux 系统调用操作系统

2020-12-20 17:34:50

Linux命令行终端

2016-05-26 10:57:51

2016-11-23 18:52:04

根目录日志代码

2020-12-26 15:21:44

VimKakoune文本编辑器

2023-08-22 20:43:09

HashMap单线程null

2010-01-11 10:05:18

Linux删除目录

2021-01-27 15:33:05

Windows 10Windows微软

2014-03-05 14:58:00

苹果CarPlayiOS

2023-03-22 09:10:18

IT文档语言

2022-04-13 20:53:15

Spring事务管理
点赞
收藏

51CTO技术栈公众号