当前位置: 首页 > 工具软件 > safe-rm > 使用案例 >

使用safe-rm防止误删系统文件rm -rf /终结者

松英喆
2023-12-01

在服务器维护过程中,为了防止误执行类似 rm -rf / 的命令,最好在服务器上加上safe-rm 下面就一步一步来安装safe-rm

安装Rust

由于safe-rm的最新版本是采用rust开发的,所以我们要先安装rust,如果你已经安装了rust可以跳过这个步骤。

使用rustup来安装rust是很快捷的方式,

# 设置 rustup 镜像源
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
# 安装rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 添加环境变量
source "$HOME/.cargo/env"

测试是否安装成功

cargo --help # 看到 Rust's package manager ... 表示安装成功

下载safe-rm并编译

# 下载代码包
wget https://launchpad.net/safe-rm/trunk/1.1.0/+download/safe-rm-1.1.0.tar.gz
# 解压
tar -zxvf safe-rm-1.1.0.tar.gz
# 编译
cd safe-rm-1.1.0
cargo build -r # 看到 Finished release [optimized] target(s) in 30.67s  编译成功

编译成功后,我们会在./target/release看到safe-rm

替换系统的rm

# 创建safe-rm执行目录
mkdir -p /usr/local/safe-rm
# 复制safe-rm到目录下
cp ./target/release/safe-rm /usr/local/safe-rm/
# 设置执行权限
cd /usr/local/safe-rm
chmod 755 safe-rm
# 重命名safe-rm并添加到PATH中
mv safe-rm rm
echo 'PATH="/usr/local/safe-rm:$PATH"' >> /etc/profile # 添加到全局
source /etc/profile

配置保护目录

safe-rm可以排除存在于/etc/safe-rm.conf(或/usr/local/etc/safe-rm.conf)配置的路径
你可以在配置文件中添加像如下的路径:

/
/usr
/usr/lib
/var

测试

!!!重要提示:请不要再你的生产环境中做 //* 路径的测试,如果配置不正确会导致不可还原的灾难!!!

你可以在Docker中创建一个容器在做以下测试

/etc/safe-rm.conf 中添加如下测试路径,

/home/test
/
/*

执行并且看到以下的提示信息表示成功

rm -rf /home/test
# safe-rm: Skipping /home/test. 
rm -rf /
# safe-rm: Skipping /.
rm -rf /*
# safe-rm: Skipping /bin.
# ...
# safe-rm: Skipping /var.
 类似资料: