使用Linux快速用chattr加锁一个程序中的所有php文件

最初发表于: 2019-12-16 11:50:22

Step1 用bash进入程序的根目录, 运行如下指令, 生成程序中所有php文件的列表findphp.txt

find ./ -name '*.php' > findphp.txt

Step2 新建一个文件叫getSh.php, 用于生成sh代码, getSh.php如下

<?php
$fileQ = file_get_contents('findphp.txt');//这里填写刚才生成的findphp.txt的路径
$fileQ = explode("\n", $fileQ);

$x = [];
foreach ($fileQ as $k => $v) {
    $a = strrpos($v, '/');
    $b = substr($v, 0, $a);
    if (!in_array($b, $x) && strlen($v)) {
        array_push($x, $b);
    }
}

$sh = '';
foreach ($x as $k => $v) {
    $sh .=  "chattr +i $v/*.php \n";
}

echo '<pre>';
print_r($sh);

Step3 运行getSh.php得到sh脚本, 可以在浏览器中复制, 把它保存成chattr_lock.sh

Step4 把 chattr_lock.sh 拷贝到网站的根目录 -> 保证它的权限是777, 用如下命令运行 chattr_lock.sh

./chattr_lock.sh

这样, 程序中所有php文件就被加锁了, 很多木马也拿它们没有办法.

建议读清逻辑, 并备份重要文件后, 再使用这个方法, 以防重要文件被损害.