Метка: linux

Изменение владельца файлов созданных от имени системных процессов

<?php

function chmod_R($path, $perm) {

  $handle = opendir($path);
  while ( false !== ($file = readdir($handle)) ) {
    if ( ($file !== "..") ) {
      @chmod($path . "/" . $file, $perm);
      if ( !is_file($path."/".$file) && ($file !== ".") )
        chmod_R($path . "/" . $file, $perm);
    }
  }
  closedir($handle);

}

$path = $_SERVER["QUERY_STRING"];

if ( $path{0} != "/" )
  $path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path;

chmod_R($path, 0777);
echo $path;

?>

linux, php

Настройка авторизации на VPS-сервере по SSH с помощью ключа

Подключаясь к серверу по SSH-протоколу советую использовать вместо логина/пароля SSH-ключи безопасности. Они представляют собой пару — закрытый и открытый ключ. Закрытый храниться у клиента, открытый отправляем на сервер.

Создание SSH-ключей

Открываем терминал на клиентском компьютере (Mac или Linux). Вводим:

ssh-keygen

Вводим путь файла, в который хотим поместить ключи. В скобках указан каталог по-умолчанию. Если устраивает расположение по-умолчанию, жмём Enter.

Далее дважды вводим пароль (passphrase), он используется для ограничения доступа к закрытому ключу — это усложняет использование ключа третьими лицами в случае утраты.

В папке которую вы указали, в нашем случае — это была папка по-умолчанию
/Users/папка-пользователя/.ssh/ сгенерированы ключи:
id_rsa.pub — открытый, id_rsa — закрытый.
Закрытый ключ оставляем на клиентском ПК, открытый копируем на сервер в файл
/папка-пользователя/.ssh/authorized_key.
Всё готово, теперь для авторизации используются ключи. Не забудьте отключить на сервере аутентификацию по паролю.

Пример аутентификации для передачи файлов

Если хотите входить на разные сервера, используя разные ключи

Для этого, создаем на клиентской стороне в директории с ключами файл «config». Прописываем туда хосты и пути к файлам:

Host 111.222.333.444
    IdentityFile /Users/папка пользователя/.ssh/имя_ключа

linux

Как скачать сайт с помощью терминала в Linux и macOS

В Linux все просто. Открываем терминал и используем wget со следующими параметрами:

wget -r -k -l 7 -p -E -nc https://ссылка-на-сайт

Если у вас macOS, то wget по-умолчанию не установлен. Это решается следующим образом.

  1. Скачиваем дистрибутив wget отсюда https://ftp.gnu.org/gnu/wget/
  2. Открываем терминал и все дальнейшие действия производим в нем.
  3. Переходим в папку со скаченным архивом wget. Вводим в терминале команду, предварительно заменив wget-1.19.tar.xz на имя вашего архива:
tar -xvzf wget-1.19.tar.xz
  1. Переходим в распакованную папку — в моем случае wget-1.19
  2. Вводим следующие команды для установки wget
./configure --with-ssl=openssl
make
sudo make install
  1. Проверяем, что всё установилось и работает следующей командой:
wget --help
  1. Скачиваем сайт с помощью wget со следующими параметрами:
wget -r -k -l 7 -p -E -nc https://ссылка-на-сайт

linux, terminal

Поиск файлов через Терминал по дате изменения

Для поиска изменённых в указанном диапазоне дат/времени файлов через терминал вводим следующий набор команд:

find /путь_к_директории/ -mindepth 1 -newermt '2017-03-06 00:00' ! -newermt '2017-03-06 23:59' -ls

Подобным образом я ищу модифицированные файлы после взлома сайта.

linux, terminal