linux简单实用的系统级防篡改命令
注意:这个只是手段之一,还需要配合其他强有力的防篡改措施
增加防篡改限制
给宝塔所有网站目录是template模板文件夹及其文件增加不可修改的权限
cd /www/wwwroot/
sudo find . -path "*/template/*" -exec sudo chattr +i {} \;
这条命令的作用是给 /www/wwwroot/
目录及其子目录下,所有路径中包含 template
文件夹的文件,添加不可修改(+i
)的权限。
逐部分解释:
-
cd /www/wwwroot/
这部分命令将当前工作目录切换到/www/wwwroot/
,这通常是宝塔面板所在的目录。 -
sudo find . -path "*/template/*"
find .
:表示在当前目录(即/www/wwwroot/
)及其所有子目录中查找文件。-path "*/template/*"
:仅查找路径中包含template
文件夹的文件或目录。这里的*
是通配符,表示匹配任何字符。
-
-exec sudo chattr +i {} \;
-exec
:表示对每个符合条件的文件执行后面的命令。sudo chattr +i {}
:对每个找到的文件执行chattr +i
命令,+i
设置文件为不可修改(immutable)。{}
代表find
查找到的每个文件。\;
:表示-exec
的命令结束,必需加上\;
来告诉find
命令执行完该操作。
总结:
这条命令会在 /www/wwwroot/
目录及其子目录下,查找所有路径包含 template
文件夹的文件,并给这些文件设置不可修改的权限,防止它们被更改或删除。
解除防篡改限制
如果你已经 cd
到 /www/wwwroot/
目录,并希望只在该目录下的所有文件夹和文件中查找和修改,而不是全系统搜索,可以修改命令的路径限制,只针对 /www/wwwroot/
及其子目录进行查找。
解除 chattr +i
权限的命令(只针对 /www/wwwroot/
下的文件):
cd /www/wwwroot/
# 解除在 /www/wwwroot/ 下所有包含 template 模板文件的不可修改权限
sudo find . -path "*/template/*" -exec sudo chattr -i {} \;
解释:
cd /www/wwwroot/
:进入目标目录。find . -path "*/template/*"
:查找当前目录(即/www/wwwroot/
)及其子目录下路径中包含template
文件夹的文件和目录。-exec sudo chattr -i {} \;
:对找到的每个文件和目录,执行chattr -i
命令,解除不可修改权限。
通过这种方式,命令只会影响 /www/wwwroot/
目录及其子目录下的文件,而不会遍历整个系统。
另一种情况
你可以通过 find
命令来查找当前目录下的所有 PHP 文件,并且排除子目录中的文件和文件夹。然后使用 chattr +i
命令设置文件的不可修改属性。
下面是你所需的命令:
find /www/wwwroot/scpa.com.cn -maxdepth 1 -type f -name "*.php" -exec chattr +i {} \;
解释:
find /www/wwwroot/scpa.com.cn
: 查找该目录下的文件。-maxdepth 1
: 限制查找的深度为 1,这样只会查找当前目录下的文件,而不进入子目录。-type f
: 仅查找文件,排除文件夹。-name "*.php"
: 只查找.php
文件。-exec chattr +i {} \;
: 对查找到的每个.php
文件执行chattr +i
,使文件变为不可修改状态。
chattr +i
的作用:
chattr +i
命令将为文件设置不可修改属性,防止文件被删除、修改或者重命名。要解除该属性,可以使用 chattr -i
。
运行这个命令后,当前目录下所有的 .php
文件将被设置为不可修改。如果需要其他操作或调整,随时告诉我!