Какие права надо поставить, чтобы не залили шелл, поиск дряни на сервере


выставить все файлам владельца root

find . -type f -exec chown root:root {} \;

выставить 755 всем каталогам и 644 всем файлам:

find . -type d | xargs chmod 755
или если есть каталоги с пробелами
find . -type d -exec chmod 755 {} ';'

для файлов:
find . -type f | xargs chmod 644
или если есть файлы с пробелами
find . -type f -exec chmod 644 {} ';'
ПОчистить кеши, а вдруг уже какая-то зараза есть:
rm engine/cache/*
rm engine/cache/system/*

Чтобы DLE смог писать всякие кеши и делать бекапы:

find uploads/ -type d -exec chmod 777 {} ';'

chmod 777 torrents/


chmod 777 backup/
chmod 777 engine/cache/
chmod 777 engine/cache/system/
chmod 777 engine/data/xfields.txt
chmod 777 engine/data/xprofile.txt

 

И все вместе, чтобы тупо скопировать:

rm engine/cache/*
rm engine/cache/system/*
find . -type d -exec chmod 755 {} ';'
find . -type f -exec chmod 644 {} ';'
find uploads/ -type d -exec chmod 777 {} ';'
chmod 777 torrents/
chmod 777 backup/
chmod 777 engine/cache/
chmod 777 engine/cache/system/
chmod 777 engine/data/xfields.txt
chmod 777 engine/data/xprofile.txt

ПОЛЕЗНО  Как рекурсивно сменить владельца и права папок и файлов

Просмотр всех пользователей системы:

cut -d: -f1 /etc/passwd

Просмотр всех не системных пользователей:

cat /etc/passwd | awk /bash/{print} | cut -d: -f1

Просмотр пользователей, залогиненных в системе

who

тут показано имя пользоавтеля, терминал и IP

 

Поиск php-файлов по владельцу:

find . -type f -iname "*.php" -user www-data

Если зальют шелл, владельцем этого файла станет пользователь от имени которого работал php-процесс, по умолчанию это www-data

 

Если надо поставить права рекурсивно конкретным файлам по маске, делаем так:

<code>find . -type f -name *rc -exec chown root:root {} \;

Поиск шелла в картинках:
</code>find . -type f |xargs grep '&lt;?php'

Поиск всех не php-файлов, в которых вшит код php:
find /var/www ! -regex '.*php' -type f |xargs grep '&lt;?php'

На всякий случай сменить root-пароль на mysql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('secret_password');
А вот поиск с пропуском большого каталога:
nice -n 19 ionice -c 3 find . \( -path uploads/photos -o -path uploads/post \) -prune -o ! -regex '.*php' -type f |xargs grep '<?php'

Поиск текста "eval" во всех файлах с расширением .php с заданной директории:

find /dir/to/find/ -type f -iname "*.php" -exec grep -Him1 'eval' {} \;

Поиск "eval" среди файлов, у которых выставлены права 777

find /dir/to/find/ -perm 2 -type f -iname "*.php" -exec grep -Him1 'eval' {} \;

Простой поиск php-скриптов в заданной папке

find /dir/to/find/ -perm 2 -type f -iname "*.php"

Поиск .php файлов, созданных или измененных за последние 7 дней, мне всегда помогала именно она:

find /dir/to/find/ -type f -iname "*.php" -mtime -7

Далее пробегаемся по списку файлов, смотрим их содержимое и, если найден shell удаляем его.