专业的编程技术博客社区

网站首页 > 博客文章 正文

Linux防止误删除(linux设置不能删除)

baijin 2024-10-18 04:04:54 博客文章 13 ℃ 0 评论

1.使用普通账户登录,使用最低权限保证操作完成即可。


2.建立alias别名

alias rm=‘rm -i’
alias mv=‘mv -i’

rm -i 删除前逐一询问确认

mv -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件。


3.建立回收站

vi ~/.bashrc 修改用户的环境变量

mkdir -p ~/.trash
 alias rm=trash
 alias r=trash
 alias rl='ls ~/.trash'
 alias ur=undelfile
 undelfile()
 {
 mv -i ~/.trash/$@ ./
 }
 trash()
 {
 mv $@ ~/.trash/
 }
 cleartrash()
 {
 read -p "clear sure?[n]" confirm
 [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
 }

重新加载环境变量source ~/.bashrc

使用命令ll -a查看目录,发现多了目录.trash,这个目录是用来存在删除的文件

drwxr-xr-x. 2 tom tom 4096 Jun 4 11:31 .trash

删除一个文件

rm percona-xtrabackup_2.2.3.orig.tar.gz

查看目录,发现删除的文件在回收站目录

ll .trash/
total 33780
-rw-r–r–. 1 tom tom 34584359 Jun 2 09:39 percona-xtrabackup_2.2.3.orig.tar.gz

如果需要清空回收站文件使用以下命令

[root@localhost ~]# cleartrash
clear sure?[n]y

再次查看,发现空了。

[root@localhost ~]# ll .trash/
total 0  

虽然rm用别名定义了,但是可以是用绝对路径删除文件 比如/bin/rm 1.txt

它是不会保存到.trash目录的。

如果需要定义自动清理7天删除的文件可以写一个脚本


4.多用mv,少用rm,禁用rm -rf。

在/tmp目录下建立deleted目录,需要删除的文件,用mv命令移动到此目录,再通过crontab计划任务定时删除。

严禁在root权限下使用rm -rf,如:

# rm -rf *
或
$ sudo rm -rf *

5.使用safe-rm

下载 Safe-rm 软件包,解压后会得到一个 safe-rm 可执行文件,将这个文件拷贝到 /usr/local/bin,就可以使用 safe-rm 命令来删除文件了,用法和参数和 rm 是一样的。

当然,最好是能够替换掉系统默认的 rm 命令,这样即使是不知道 safe-rm 的用户,也可以受到保护。只需做一个 rm 的符号链接:

 ln -s /usr/local/bin/safe-rm /usr/local/bin/rm

然后,要保证环境变量 PATH 中,/usr/local/bin 在 其他路径的前面:

 PATH=/usr/local/bin:/bin:/usr/bin

这样 rm 命令实际调用的就是 safe-rm 命令了。

safe-rm 命令使用两个配置文件:

 /etc/safe-rm.conf 全局保护文件列表
 ~/.safe-rm 用户保护文件列表

只需要将重要文件或者目录的完整路径输入进去就可以了,每条以回车分隔。

例如,在 /etc/safe-rm.conf 中写入:
/
/*
/bin
/bin/*
/boot
/boot/*
/data
/data/*
/dev
/dev/*
/etc
/etc/*
/home
/home/*
/lib
/lib/*
/lib64
/lib64/*
/lost+found
/lost+found/*
/media
/media/*
/mnt
/mnt/*
/opt
/opt/*
/proc
/proc/*
/root
/sbin
/sbin/*
/selinux
/selinux/*
/srv
/srv/*
/sys
/sys/*
/tmp
/usr
/usr/*
/var
/var/*
即使是root用户也无法删除保护列表中的文件。

操作如下:
vim ~/safe.sh
#!/bin/bash
for i in $(ls /)
do
echo /$i >>nlist
done
sort -n nlist -o /etc/safe-rm.conf

chmod +x safe.sh

./safe.sh 列表即可写入/etc/safe-rm.conf

老生常谈的服务器安全问题,前 2 项是一定要做的,后面选做。

1. 只允许非 root,非 sudo 用户登陆。

2. 换端口。

3. Key 登陆,密码不可登陆。

4. CHROOT 监狱。

5. 阿里云这种,平时关闭 ssh/或是封掉 SS 端口,要用的时候打开。

6. fail2ban

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表