Ответ не может быть ни тем, ни другим.
time.time()
возвращает примерно количество секунд, прошедших с момента Эпохи. Результат не зависит от часового пояса, поэтому он не является ни UTC, ни местным временем. Здесь исправление POSIX для «Секунды с эпохи» . time.time()
не требуют синхронизации синхронизации вашей системы, поэтому она отражает ее значение (хотя в ней ничего нет с местным часовым поясом). Различные компьютеры могут получать разные результаты одновременно. С другой стороны, если время вашего компьютера равно , тогда легко получить время UTC из метки времени (если мы игнорируем секунды скачка): from datetime import datetime
utc_dt = datetime.utcfromtimestamp(timestamp)
О том, как получить временные метки от времени UTC в различных версиях Python, см. . Как я могу получить дату, преобразованную в секунды с эпохи в соответствии с UTC?
Проблемы, на которые указывает выше benlumley, т.е. файлы журнала и зарезервированные порты, могут легко быть преодолены путем конфигурирования каталога журнала и порта в httpd.conf.
Можно выполнить Apache как любой пользователь. Просто удостоверьтесь, что это установлено только до использования, позволенного ресурсы (каталоги, файлы и самое главное слушающий на не привилегированном порте).
, Чтобы иметь его появляются на стандартном порте HTTP’s 80 (который является priviledged), необходимо будет установить, как корень перенаправление к реальному серверу Apache. Самый легкий путь, вероятно, использует iptables. Например, если Ваш сервер Apache слушает на порте 8080:
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -j REDIRECT --to-port 8080
, Если Вы не можете настроить сервер как это (или сделали, чтобы Ваш системный администратор сделал это раз и навсегда), необходимо будет использовать не привилегированный порт (что-то как Listen 8080
) и получать доступ к нему с помощью URL, который похож http://www.example.com:8080/
Короткий ответ: Никакой
причина его состоит в том, что только корень может связать порты ниже 1024.
ответ Long: выезд http://www.debian-administration.org/articles/386
, После того как Вы преодолеваете проблему с портами, я не думаю, что больше будет проблема. Просто помните, что пользователь, которого апач выполняет под потребностью иметь доступ для записи к файлам журнала и возможно некоторым другим файлам также.
Однако при выполнении его без sudo spawner, вероятно, не сможет изменить пользователя, таким образом апачский будет выполнен как пользователь, начинающий его, вместо апачского пользователя.
, Но какова причина, Вы не хотите выполнять sudo? Это - только процесс spawner, который выполняется, как корень, остальная часть их выполняется при апачском пользователе.
Эти две проблемы я могу думать об этом, необходимо преодолеть:
Полномочия на файлах журнала - они могут быть уже установлены позволить wwwrun часто получать доступ к ним, но проблема.
Не пользователь root, получающий доступ к привилегированному порту (80) - не уверенный, если/как можно изменить это.
Я думаю, что необходимо смочь сделать это путем предоставления доступа на выполнение к группе, владеющей управляющей программой Apache (например, "chmod g+x apachectl"). Если это, не работает отдельно попытка, также устанавливающая владельца, SUID обдумал программу (что-то вроде "chmod u+s apachectl").
первый шаг позволяет пользователям в Вашей wwwrun группе выполнять apachectl программу. Второй шаг делает его так, чтобы, когда группа запускает программу, она выполнила с владельцами программ полномочия.
Сообщенный мне, если это работает, я немного ржав с выполнением файла SUID, но я могу помочь изучить его далее, если у Вас все еще есть проблемы.
Быть уверенными Вы понимаете, что последствия установки SUID укусили, прежде чем Вы сделаете это все же.
Вы можете "setuid", чтобы позволить некорневым пользователям выполнять apachectl как корень (не имея необходимость проходить проверку подлинности как корень).
Редактирование: Должен упомянуть, что Вы требуете, чтобы корневой доступ настроил это во-первых :-)