URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 80789
[ Назад ]

Исходное сообщение
"ftpd ls time"

Отправлено Vovan , 18-Июн-08 14:10 
Имею такую проблему. Есть FreeBSD 4.11 на ней крутится ftpd
Всё работает нормально, но есть непонятная штука со временем создания файлов.
Если смотрю время создания файла по SSH то время будет следующее:
bash-2.05b# bash-2.05b# ls -la
-rw-rw----  1 sam  usersftp     53401 18 июн 13:05 SAR0568J.DBF

т.е. 13.05

Если смотреть с помощью фтп клиента:
ftp> ls -la
200 PORT command successful.
150 Opening ASCII mode data connection for '/bin/ls'.
total 58904
-rw-rw----  1 1012  1016     53401 Jun 18 09:05 SAR0568J.DBF
226 Transfer complete.
ftp: 967 байт получено за 0,24 (сек) со скоростью 4,11 (КБ/сек).

т.е. 09:05

Разница получается в 4 часа.
Как сделать нормальное отображение времени?


Содержание

Сообщения в этом обсуждении
"ftpd ls time"
Отправлено newser , 18-Июн-08 15:25 
>[оверквотинг удален]
>total 58904
>-rw-rw----  1 1012  1016     53401 Jun
>18 09:05 SAR0568J.DBF
>226 Transfer complete.
>ftp: 967 байт получено за 0,24 (сек) со скоростью 4,11 (КБ/сек).
>
>т.е. 09:05
>
>Разница получается в 4 часа.
>Как сделать нормальное отображение времени?

Можно попробовать решить созданием каталога etc в root-каталоге FTP-сервера и скопировать туда файл /etc/localtime. Либо запускать ftpd скриптом, в котором экспортируется переменная TZ.


"ftpd ls time"
Отправлено Vovan , 18-Июн-08 16:09 
>Можно попробовать решить созданием каталога etc в root-каталоге FTP-сервера и скопировать туда
>файл /etc/localtime. Либо запускать ftpd скриптом, в котором экспортируется переменная TZ.

Да, сделал в root каталоге фтп сервера каталог etc и поместил в него localtime время стало показываться верно.

Немного не понятно со 2-ым методом. ftpd стартует не демоном а из inetd.conf
там строка вида:
ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l -l

Как в этом случае можно экспортнуть эту TZ?


"ftpd ls time"
Отправлено newser , 18-Июн-08 16:33 
>[оверквотинг удален]
>него localtime время стало показываться верно.
>
>Немного не понятно со 2-ым методом. ftpd стартует не демоном а из
>inetd.conf
>там строка вида:
>ftp     stream  tcp    
>nowait  root    /usr/libexec/ftpd    
>  ftpd -l -l
>
>Как в этом случае можно экспортнуть эту TZ?

Попробовать написать простейший wrapper на shell, например, такой:

--->8---
#!/bin/sh

TZ=Europe/Moscow
export TZ

/usr/libexec/ftpd -l -l
---8<---

и в inetd.conf поместить вызов этого wrapper'а. Не проверял, но по логике работать должно. Хотя 1-й способ, ИМХО, идеологически более верный.


"ftpd ls time"
Отправлено Vovan , 18-Июн-08 17:21 
>[оверквотинг удален]
>#!/bin/sh
>
>TZ=Europe/Moscow
>export TZ
>
>/usr/libexec/ftpd -l -l
>---8<---
>
>и в inetd.conf поместить вызов этого wrapper'а. Не проверял, но по логике
>работать должно. Хотя 1-й способ, ИМХО, идеологически более верный.

дело в том что домашних каталогов и пользователей много. не у всех один /home каталог в который chroot-ится пользователь, получается что эту /etc/localtime надо будет рассовать всем) А в случае с экспортом этим заниматься непридётся =)


"ftpd ls time"
Отправлено newser , 18-Июн-08 18:39 
>[оверквотинг удален]
>>/usr/libexec/ftpd -l -l
>>---8<---
>>
>>и в inetd.conf поместить вызов этого wrapper'а. Не проверял, но по логике
>>работать должно. Хотя 1-й способ, ИМХО, идеологически более верный.
>
>дело в том что домашних каталогов и пользователей много. не у всех
>один /home каталог в который chroot-ится пользователь, получается что эту /etc/localtime
>надо будет рассовать всем) А в случае с экспортом этим заниматься
>непридётся =)

Тогда попробуйте через скрипт. Отпишитесь о результатах. :)


"ftpd ls time"
Отправлено Vovan , 18-Июн-08 19:10 
>>[оверквотинг удален]
>Тогда попробуйте через скрипт. Отпишитесь о результатах. :)

Скриптом не работает( Только что проверил.