Linux之rm -rf 安全删除

简介: 新建自定义删除脚本:vim /usr/bin/safe_remove !/bin/bash TRASH_DIR="/tmp/user/${USER}/.trash"mkdir -p $TRASH_DIR RMPATH="" 遍历rm命令参数(e.

参考本人简书

新建自定义删除脚本:

vim /usr/bin/safe_remove
#!/bin/bash

TRASH_DIR="/tmp/user/${USER}/.trash"
mkdir -p $TRASH_DIR

RMPATH=""
# 遍历rm命令参数(e.g. rm -rf时要去掉-rf参数,只需后面的path列表即可)
for arg in "$@"
do
  IS_ARG=$(echo "$arg" | grep "^-")
  if [ -z "$IS_ARG" ]; then
    if [ -n "$RMPATH" ]; then
      RMPATH="${RMPATH} "
    fi
    RMPATH="${RMPATH} $arg"
  fi
done

if [ -n "$RMPATH" ]; then
  FILE_PARENT_DIR=$(pwd $RMPATH)
  SUFFIX=$(echo `date "+%y%m%d%H%M%S"`)

  # 拼接欲删除文件的目录,在回收站中的目录名称(直接将目标文件或目录的父目录作为在回收站的名称,这样做好处是无论删除的是文件或目录都可统一处理)
  FILE_TRASH_DIR="${TRASH_DIR}${FILE_PARENT_DIR}.children.rm.${SUFFIX}.tmp"

  if [ ! -d "$FILE_TRASH_DIR" ]; then
    mkdir -p $FILE_TRASH_DIR
  fi
  mv $RMPATH "${FILE_TRASH_DIR}"
fi

配置安全删除脚本生效

vim /root/.bashrc

新增一行即可:

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# 安全rm
alias rm='sh /usr/bin/safe_remove'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

使其生效

. /root/.bashrc

效果测试

生成测试文件和目录
useradd testing
cd /home/testing
echo 111 > a.txt
echo 222 > b.txt
mkdir -p log
echo 333 > log/test.log
rm删除
rm -rf a.txt b.txt log
查看回收站
ll /tmp/user/root/.trash/home/testing.children.rm.190521102654.tmp/

操作效果:
image.png

FAQ:
1,安全删除测试不成功?
排查是否与本文操作一致,同时查看是否有mv目标文件或目录的linux权限。
2,如何清理回收站?
直接\rm -rf xxx (加个反斜杠)就可以使用linux原生rm命令了。
3,定时清理回收站?
自己建立个crontab任务咯~!

目录
相关文章
|
24天前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
44 0
Vanilla OS:下一代安全 Linux 发行版
|
2月前
|
运维 网络协议 安全
Linux安全运维--一篇文章全部搞懂iptables
Linux安全运维--一篇文章全部搞懂iptables
45 1
|
2月前
|
安全 搜索推荐 Ubuntu
|
4月前
|
关系型数据库 MySQL Linux
在Linux中,新安装mysql后怎样提升mysql的安全级别?
在Linux中,新安装mysql后怎样提升mysql的安全级别?
|
4月前
|
存储 监控 安全
Linux存储安全:物理安全基石
【8月更文挑战第17天】在数字化时代,数据安全至关重要。Linux存储安全的物理防护作为基石,通过选择安全的数据中心、实施严格的访问控制、环境监控、物理隔离及设备锁定等措施,有效防范未授权访问和环境威胁。结合具体实施方法与案例代码,能大幅提升系统的物理安全性,确保数据安全无虞。
58 10
|
4月前
|
存储 监控 安全
在Linux中,如何进行安全审计?
在Linux中,如何进行安全审计?
|
4月前
|
安全 Linux 数据安全/隐私保护
Linux安全大揭秘:一键切换root权限背后隐藏的秘密
【8月更文挑战第23天】Linux操作系统因其出色的灵活性和安全性备受推崇,用户权限管理是其核心功能之一。本文介绍如何安全地在用户间切换,特别是切换至拥有最高权限的root用户。我们探讨了两种主要的方法:`su` 和 `sudo` 命令,并通过示例展示了它们的应用场景。`su` 命令适合需要执行多个root权限操作的情况,而 `sudo` 更适用于临时执行单个高权限命令。同时,文章还提供了一些最佳实践,如避免长时间使用root账户、定期审查 `sudoers` 文件等,以确保系统的安全性。正确理解和应用这些工具和原则对于维护Linux系统的安全至关重要。
59 0
|
4月前
|
安全 Linux 网络安全
在Linux中,如何实现安全的远程访问?
在Linux中,如何实现安全的远程访问?
|
4月前
|
存储 监控 安全
在Linux中,什么是安全信息和事件管理(SIEM)?
在Linux中,什么是安全信息和事件管理(SIEM)?
|
4月前
|
安全 Ubuntu Linux
在Linux中,如何实现安全的密码策略?
在Linux中,如何实现安全的密码策略?