Запретите-p на sftp

Часовой пояс установлен на уровне сервера, таким образом, нет способа переопределить это на сайт. Способ обработать, который был бы из Вашего кода. Установите часовой пояс в своем web.config и вычислите часовой пояс на лету на основе этого.

3
задан 4 May 2013 в 01:55
4 ответа

Нет, вы не можете сделать это в конфиге. Просматривая sftp-server.c , я вижу, что единственный способ отключить это - запустить sftp-server в режиме только для чтения, что совершенно бесполезно, если вы хотите разрешить загрузку :)

Если вы не против поддерживать свой собственный пакет openssh, вы можете удалить вызовы utimes / futimes в sftp-server.c перед компиляцией. В качестве альтернативы вы можете использовать библиотеку LD_PRELOAD с noop реализациями этих функций.

6
ответ дан 3 December 2019 в 04:44

Вы можете использовать incond (inotify cron daemon), чтобы запускать скрипт при добавлении файла.

Если у вас есть много загруженных файлов одновременно, вы можете поставить в очередь имена файлов в быть обработанными, затем вы можете обрабатывать элементы очереди по одному.

4
ответ дан 3 December 2019 в 04:44

Я не знаю (но не думаю, что) вы можете сделать это в sshd_config. Однако вот идея: что, если вы измените сценарий обработки так, чтобы файлы сначала попадали во временный каталог, вы берете хеш (возможно, md5) файла и сравниваете этот хеш с файлом с тем же именем в каталог пользователя (если такой файл существует).

Если хеш совпадает, то ничего не делайте (в чем смысл?)

Если хеш не совпадает, то копируйте (не перемещайте) файл из временного каталога в окончательное расположение (конечно, без опции -p).

1
ответ дан 3 December 2019 в 04:44

Вы сказали, что параметр ... "-p" ... устанавливает c / a / mtimes файла ... - это неверно, так как ctime может быть установлен на текущее время только путем изменения mtime или разрешений inode (или других настроек inode, которые здесь не важны).

Обладая этим знанием, вы можете найти необработанные файлы, используя -cnewer .

$ FILESTOPROCESS=$(find -H /home/$CUST -type f \
   \( -newer /home/$CUST/marker-file -o \
      -cnewer /home/$CUST/marker-file \) )
2
ответ дан 3 December 2019 в 04:44

Теги

Похожие вопросы