一.慎用root命令
不要使用root权限的用户进行日常操作,改用带root权限的用户
adduser aaa
passwd aaa
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
aaa ALL=(ALL) ALL
在aaa用户下,即使输入 rm -rf /* 也没关系了,会出现 Permission Denied
这样就可以避免错误命令 让linux系统崩溃了
二.使用rm命令,改用mv替代
root权限下
1、在linux下任意位置创建脚本文件
vim trashgo.sh
2、然后将下面的脚本复制到trashgo.sh
#!/bin/bash
yum install -y wget
wget https://raw.githubusercontent.com/LinkinStars/linux-stuff/master/scripts/saferm.sh
sudo mv saferm.sh /bin
chmod 777 /bin/saferm.sh
if cat ~/.bashrc | grep "alias rm=saferm.sh">/dev/null
then
echo "exist"
else
echo "
alias rm=saferm.sh" >> ~/.bashrc
fi
source ~/.bashrc
3、然后执行
source trashbin.sh
这样执行 rm 后 ,实际执行的是 mv 文件 $HOME/Trash
$HOME 是用户目录,比如用户aaa的 $HOME 就是 /home/aaa
4 、可以修改垃圾桶位置 (不想改位置可忽略)
垃圾桶脚本的位置是在/bin/saferm.sh
其中 trash_fallback 可以修改垃圾桶所在的位置
## trashbin definitions
# this is the same for newer KDE and GNOME:
trash_desktops="$HOME/.local/share/Trash/files"
# if neither is running:
trash_fallback="$HOME/Trash"
5、定期清理垃圾桶
在/user/bin创建删除脚本deleteTrash.sh
#!/bin/bash
find $HOME/Trash -exec rm -rf {} \;
echo "删除文件成功!";
授权
chmod a-x deleteTrash.sh
找到/etc/crontab文件,添加下面一行
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* * 1 * * root /usr/bin/deleteTrash.sh
#每月一号执行以root身份执行deleteTrash文件;