程序员都想,却不敢做的事?我来!

一个 “实用” 的好命令,我不得试试?

大家好,我是鱼皮。

在编程届,有一个家喻户晓的实用 Linux 命令:rm -rf /

据说,此命令一旦执行成功,就会给人带来快乐,是一个善良的好命令,所以我喜欢叫它 快乐命令

好吧,不装了,其实这个命令的作用是 删除服务器上所有的文件 !是一个极度危险的命令!

之前我们可能也听说过很多删数据跑路事件,其中一部分元凶正是这个命令。

记得前两周,我刚买了一台全新的云服务器,在给大家演示如何搭建应用开发环境。结果没想到,一些小伙伴竟然怂恿我当场输入 “快乐命令”,想看看会出现什么效果。

这么刺激的事情,我不得试试?

于是,我打开终端,连接服务器,输入快乐命令。而且,要做就要做得绝一点,我甚至同时开了 三个 客户端,打算同时输入命令,三倍快乐!

OK,起飞 ????!

但结果呢,数据并没有被删除,而是弹出了一个警告,禁止删除!

对不起,结果让大家失望了~

其实在敲这行命令之前,我就一点儿也不担心,因为我相信腾讯云服务器不可能连这点安全保障都没有。

那问题来了,如何防止快乐命令带来的恶劣影响呢?

下面就简单分享下我了解到的方法吧~

如何防止 rm -rf 命令?

方法还是挺多的,我简单整理了一个大纲:

防止 rm -rf 大法

好习惯

首先,使用服务器最多的人肯定是我们自己,因此我们要先养成良好的使用习惯,保护服务器,从我做起。

定期备份

为了防止服务器上的数据(数据库、用户文件、配置文件等)被误删除,可以定期将服务器上重要的文件下载到本地或同步到其他存储空间上,一般使用定时脚本(crontab 命令等)或工具自动定时同步。

替代命令

为了防止意外 rm 命令带来的不利影响,我们可以尽量少用该命令,使用一些其他的命令来替代删除。

比如 mv 命令,作用是移动文件或改名,可以自己新建一个类似回收站的目录,然后把要删的文件扔进去。

# 新建回收站目录
mkdir trash
# 移动文件到回收站
mv file.txt trash

针对日后可能还需要的文件,可以给文件增加 .bak 后缀,表示备份:

mv file.txt file.txt.bak

但是,即使养成了好习惯,有时候可能也会疏忽,不小心打出了 rm 命令,意外删除了文件。

莫慌,还有其他更保险的方法。

Alias 别名

Linux 中的 alias 命令用于为指令设置别名,有点类似对象的引用。

举个例子,本来可以用 mkdir 命令创建目录,如果我觉得这个命令背不下来,那可以给他起个别名:

alias md=mkdir

然后,我们就可以使用 md 命令来创建目录了。

同理,我们可以把 rm 命令设置为其他命令的别名,从而阻止原本的删除功能。

其实很多服务器已经默认为我们设置了一些保护系统文件安全的别名,让我们打开 .bashrc 文件:

cat /root/.bashrc

可以看到如下代码:

# .bashrc
# User specific aliases and functionsalias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

系统已经为 rm 命令配置了别名,当我们输入 rm 时,实际执行的是 rm -i,通过 -i 参数来询问我们是否要删除,只有输入 y 确认后,才会执行删除操作。

是否确认删除

手动回收站

基于 alias 命令,我们可以自动将 rm 命令重定向为将文件放入回收站目录,操作如下:

首先修改 .bashrc 文件(Linux 下环境配置文件,用于保存一些个性化配置):

vim ~/.bashrc

在文件末尾追加如下代码:

# 创建一个.trash 隐藏目录
mkdir ~/.trash
# 使用别名 del 代替 rm  
alias rm=del
# 将 rm 命令改为 mv 
del()               
{  mv $@ ~/.trash/  
}

保存退出,然后输入下列命令使修改生效:

source ~/.bashrc

大功告成,然后再执行 rm 命令,就会自动移动到回收站目录啦!

trash

除了自己手动编写回收站脚本外,还可以使用现成的开源项目 trash,Mac 用户可以直接用一行命令安装,就可以愉快地使用了。

项目地址:https://github.com/ali-rantakari/trash

权限管理

以上的方式对于个人服务器用户来说,一般就足够了,但如果是团队开发,多人同时在一台服务器上操作,就很难说谁突然删文件跑路了对吧。

所以,最好还是对服务器上的文件进行合理的权限设置,常用的几种方式如下。

修改文件权限

最直接的方式,直接用 chmod 命令修改指定文件的读、写、执行权限,比如下列命令:

chmod 700 file.txt

作用是设置仅创建该文件的用户可读写,其他用户无权访问。

chattr

Linux 系统自带的 chattr 命令是 Change Attribute 的缩写,意为改变文件的属性,能够用来防止文件和目录被意外删除或修改。

比如下列命令:

sudo chattr +i file.txt

通过 +i 参数给文件追加了 “不可修改” 的属性,该不能被删除、改名、设定链接关系,同时不能写入或新增内容。该参数可谓是提高系统安全的神器!

让我们试下效果:

果然删除失败了,提示操作不被允许。

如果要保护目录,只需要加个 -R 参数就行了:

sudo chattr -R +i myDir

设置 sudo 权限

sudo 是 Linux 的常用命令,可以临时以 root 用户(超级管理员)的身份执行命令。

如果给了一个普通用户超级管理员的身份,他将能做任何事情,这是非常危险的啊!

所以可以使用 visudo 命令,修改普通用户使用 sudo 命令时的权限。

输入 visudo,将自动进入 /etc/sudoers 文件的编辑,尝试追加一行:

dog localhost=/bin/rm /file/*

这就意味着,用户 dog 只能删除 /file 目录下的文件,而不能随意删除。

Lshell

再提一个开源的 Linux 安全神器 Lshell,可以用于构建一个受限的 Linux 脚本执行环境。

项目地址:https://github.com/ghantoos/lshell

一行命令安装后,可以通过修改它的配置文件 /etc/lshell.conf,来管理用户的行为。

比如下列配置,禁止用户 yupi 使用 rm 命令,防止这货删文件跑路:

 [yupi]allowed = 'all' - ['rm']

一般情况下,以上那么多种措施就足够防护了,也比较简单。

但最后,还是要提醒大家,不要轻易尝试这个命令哈哈。一时好奇一时爽,明天要睡垃圾场!

我是鱼皮,点赞 + 在看 还是要求一下的,祝大家都能心想事成、发大财、行大运。

往期推荐

鱼皮出教材了!

我毕业了!

带老弟做个实时排行榜

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

也来谈谈这致命的手机充电器

这两天有很多关于因使用iPhone在充电时打电话被电死的讨论,因此这里也来谈谈几点。 手机充电器的工作原理 刚好前段时间拆了两个充电器,看下里面的电路就明白了。鉴于网络上不明真相出来误导人的特别多,很多网站竟然还有文章说手机充电器里没…

每日一笑 | 一些关于学编程的领悟

全世界只有3.14 % 的人关注了数据与算法之美(图源网络,侵权删)

java基础变量_Java基础语法之变量和常量

上行没有"{"时,下行代码与上行首字母对齐标识符概述在Java中对变量、常量、函数和语句块都是有名字的,他们的名字统称为Java标识符。是为类、对象、方法、变量、接口和自定义数据类型命名的。组成标识符是由数字、字母、下划线(_)和美元符($)或…

GARFIELD@01-07-2005

completist 转载于:https://www.cnblogs.com/rexhost/archive/2005/01/07/88107.html

非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)

1、HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错…

.net core 浅克隆和深克隆/浅拷贝和深拷贝

除非语言里只有基础类型,没有引用类型,否则用任何一种编程语言克隆对象都是很棘手的事情。1、前言"老沉,什么是深克隆,什么是浅克隆?"“哈,迷茫了?这深深浅浅的体验是不是把你搞晕了&#xff1f…

中国三代核电最新进展;AI助力发现系外行星;腾讯发现特斯拉系统漏洞;论文剽窃被撤销学位;金立破产债权达173亿;这就是今日大新闻...

今天是4月3日农历二月廿八今天星期三最近上班老是有人来推销办理信用卡是谁把我缺钱花的消息透露出去了下面是今天的大新闻中国发布三代核电最新进展(环球时报)由中国核能行业协会主办的中国核能可持续发展论坛1日在京举行,多位专家现场发布了…

java对象模型是什么_蓝石榴_个人博客_JVM内存结构、Java内存模型、Java对象模型...

JVM内存结构我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在,而有些区域则依赖用户线程的…

使用微信云托管快速部署一个.Net Core项目(一)

前几天微信将小程序开发者工具内的云托管升级为微信云托管,新增了很多诸如OpenApi、MySql数据库、流水线构建、web控制台等能力。看文档还是蛮激动的,对开发者来说确实是个好消息,因为之前的一些业务逻辑大都写在云函数或者部署在服务器里面&…

中国禁止洋垃圾后,韩国这座垃圾山已经烧了3个月,全部烧完还要5年!

全世界只有3.14 % 的人关注了数据与算法之美2017年5月,韩国洛东江畔的樱花(图片来源:东方IC)去年平昌冬奥会,由5名来自义城郡的姑娘组成的韩国冰壶队战胜各路强手,夺得亚军,这让义城郡这座风景秀…

zendframework配置篇

1. 重写配置 httpd.conf配置修改 LoadModule rewrite_module modules/mod_rewrite.so <Directory "D:\PHPProject\MVCA\public"> AllowOverride All </Directory> 2.application.config.php中添加模块&#xff0c;如 Album,紧跟Application后面

ADO.NET 2.0 中的新增 DataSet 功能

发布日期&#xff1a; 1/13/2005| 更新日期&#xff1a; 1/13/2005 Jackie Goldstein Renaissance Computer Systems 适用于&#xff1a; Microsoft ADO.NET 2.0 Visual Basic 编程语言 摘要&#xff1a;了解有关 .NET Framework DataSet 类以及与它密切相关的类中的新增 ADO…

为WPF播放GIF伤神不?

为WPF播放GIF伤神不&#xff1f;WpfAnimatedGif仓库地址&#xff1a;https://github.com/XamlAnimatedGif/WpfAnimatedGifNuget 包&#xff1a;WpfAnimatedGif[1]。今天介绍一个用于在 WPF 中显示动态 GIF 图片的库&#xff0c;可在 XAML 或代码中使用&#xff1a;WpfAnimatedG…

每日一笑 | 最真实的商业模式

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

java执行更新sql_sql server执行更新需要更多时间

我有两个表(UserTable和UserProfile)和结构&#xff1a;create table userTable(id_user int identity(1,1) primary key ,Name varchar(300) not null ,Email varchar(500) not null ,PasswordUser varchar(700) not null,userType int ,constraint usertype_fk foreign key(u…

昨天订了一台FSC Lifebook S6220

准备出差用 转载于:https://www.cnblogs.com/rexhost/archive/2005/03/24/124683.html

如何绕过 TPM 2.0 安装 Windows 11 操作系统?

方法一&#xff1a;删除 appraiserres.dll 文件1.下载 Windows 11 原版系统 ISO 镜像文件并解压到单独文件夹。&#xff08;一条不成熟的建议&#xff1a;现在请直接拔掉网线或关闭 WiFi&#xff09;2.打开已解压的文件&#xff0c;点击【source】文件夹。3.选择【appraiserres…

《悦趣式连锁反应》玩转STEM教育!529块积木元件,N+1款炫酷模型

▲数据汪特别推荐点击上图进入玩酷屋之前推荐的“小小机械师”成了孩子最受欢迎的玩具&#xff0c;玩了的孩子几乎没有不喜欢的。还有家长买多套送给朋友的孩子作为生日礼物。有家长来问&#xff0c;还有没有这种类型的新产品。和厂家咨询后&#xff0c;小木找到了一款“小小机…

域名的MX设置及校验方法

国内私募机构九鼎控股打造APP&#xff0c;来就送 20元现金领取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html内部邀请码&#xff1a;C8E245J &#xff08;不写邀请码&#xff0c;没有现金送&#xff09;国内私募机构九鼎控股打造&#xff0c;九鼎投资是在全国股份…

昨天去驾校桩考

我通过了&#xff0c;当然。 封闭的电子考场&#xff0c;在场外待考的人们不惜屈尊偷看场内的“考题”&#xff0c;不过想来也没有什么看的&#xff0c;不还是平常一样的正反手进出库和移库嘛。 8:30正式开考之前&#xff0c;可以买票&#xffe5;10练习一次&#xff0c;有一位…