Существует ли способ запустить/перезапустить/остановить апачский сервер на Linux как некорневой пользователь? [закрытый]

Ответ не может быть ни тем, ни другим.

  • ни: time.time() возвращает примерно количество секунд, прошедших с момента Эпохи. Результат не зависит от часового пояса, поэтому он не является ни UTC, ни местным временем. Здесь исправление POSIX для «Секунды с эпохи» .
  • оба: time.time() не требуют синхронизации синхронизации вашей системы, поэтому она отражает ее значение (хотя в ней ничего нет с местным часовым поясом). Различные компьютеры могут получать разные результаты одновременно. С другой стороны, если время вашего компьютера равно , тогда легко получить время UTC из метки времени (если мы игнорируем секунды скачка):
    from datetime import datetime
    
    utc_dt = datetime.utcfromtimestamp(timestamp)
    

О том, как получить временные метки от времени UTC в различных версиях Python, см. . Как я могу получить дату, преобразованную в секунды с эпохи в соответствии с UTC?

17
задан Adriana 8 February 2009 в 13:04
поделиться

6 ответов

Проблемы, на которые указывает выше benlumley, т.е. файлы журнала и зарезервированные порты, могут легко быть преодолены путем конфигурирования каталога журнала и порта в httpd.conf.

3
ответ дан 30 November 2019 в 12:44
поделиться

Можно выполнить 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/

11
ответ дан 30 November 2019 в 12:44
поделиться

Короткий ответ: Никакой

причина его состоит в том, что только корень может связать порты ниже 1024.

ответ Long: выезд http://www.debian-administration.org/articles/386

, После того как Вы преодолеваете проблему с портами, я не думаю, что больше будет проблема. Просто помните, что пользователь, которого апач выполняет под потребностью иметь доступ для записи к файлам журнала и возможно некоторым другим файлам также.

Однако при выполнении его без sudo spawner, вероятно, не сможет изменить пользователя, таким образом апачский будет выполнен как пользователь, начинающий его, вместо апачского пользователя.

, Но какова причина, Вы не хотите выполнять sudo? Это - только процесс spawner, который выполняется, как корень, остальная часть их выполняется при апачском пользователе.

5
ответ дан 30 November 2019 в 12:44
поделиться

Эти две проблемы я могу думать об этом, необходимо преодолеть:

  1. Полномочия на файлах журнала - они могут быть уже установлены позволить wwwrun часто получать доступ к ним, но проблема.

  2. Не пользователь root, получающий доступ к привилегированному порту (80) - не уверенный, если/как можно изменить это.

1
ответ дан 30 November 2019 в 12:44
поделиться

Я думаю, что необходимо смочь сделать это путем предоставления доступа на выполнение к группе, владеющей управляющей программой Apache (например, "chmod g+x apachectl"). Если это, не работает отдельно попытка, также устанавливающая владельца, SUID обдумал программу (что-то вроде "chmod u+s apachectl").

первый шаг позволяет пользователям в Вашей wwwrun группе выполнять apachectl программу. Второй шаг делает его так, чтобы, когда группа запускает программу, она выполнила с владельцами программ полномочия.

Сообщенный мне, если это работает, я немного ржав с выполнением файла SUID, но я могу помочь изучить его далее, если у Вас все еще есть проблемы.

Быть уверенными Вы понимаете, что последствия установки SUID укусили, прежде чем Вы сделаете это все же.

0
ответ дан 30 November 2019 в 12:44
поделиться

Вы можете "setuid", чтобы позволить некорневым пользователям выполнять apachectl как корень (не имея необходимость проходить проверку подлинности как корень).

Пример

Редактирование: Должен упомянуть, что Вы требуете, чтобы корневой доступ настроил это во-первых :-)

0
ответ дан 30 November 2019 в 12:44
поделиться
Другие вопросы по тегам:

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