Давайте предположим, что я создал систему, я создал имя пользователя tiesto. У меня в основном были корень и tiesto как пользователи, которыми я оперирую непосредственно.
Затем, когда я установил Apache, он добавил третьего пользователя - www-данные.
Когда я работаю ps aux | egrep '(apache|httpd)'
Я добираюсь:
root 3192 0.0 1.4 327668 30364 ? Ss Nov23 0:04 /usr/sbin/apache2 -k start
www-data 28806 0.0 2.1 335512 43696 ? S 06:25 0:01 /usr/sbin/apache2 -k start
www-data 28808 0.0 1.8 335196 37412 ? S 06:25 0:00 /usr/sbin/apache2 -k start
www-data 28809 0.0 2.0 337408 41280 ? S 06:25 0:00 /usr/sbin/apache2 -k start
www-data 28811 0.0 2.3 333112 49148 ? S 06:25 0:00 /usr/sbin/apache2 -k start
www-data 32351 0.2 2.3 341040 49028 ? S 06:50 0:01 /usr/sbin/apache2 -k start
www-data 32480 0.0 0.5 328160 10844 ? S 06:58 0:00 /usr/sbin/apache2 -k start
www-data 32481 0.0 0.5 328280 11128 ? S 06:58 0:00 /usr/sbin/apache2 -k start
www-data 32482 0.2 1.8 335116 37428 ? S 06:58 0:00 /usr/sbin/apache2 -k start
www-data 32483 0.0 1.7 334784 36040 ? S 06:58 0:00 /usr/sbin/apache2 -k start
www-data 32484 0.0 0.4 327716 8812 ? S 06:59 0:00 /usr/sbin/apache2 -k start
tiesto 32586 0.0 0.0 14512 1032 pts/0 S+ 07:01 0:00 grep -E --color=auto (apache|httpd)
Ну, мой вопрос может состоять из следующих 2 вопросов:
su www-data
, Я добираюсь:Эта учетная запись в настоящее время не доступна.
sudo anything
с, и не tiesto. Я мог назвать это слияние tiesto---> в www-данные.www-data
системная учетная запись, предназначенная, чтобы использоваться в качестве учетной записи, в соответствии с которым Apache работает Сервер HTTP. Это не предназначается, чтобы использоваться для интерактивной работы.
Прямой технический ответ на вопрос, почему su www-data
не работает то, что учетная запись www-data
набор должен иметь nologin
как его оболочка входа в систему (man nologin
). Это сделано по умолчанию для воспрепятствования использования, которые составляют интерактивную работу. Можно, конечно, всегда делать sudo -u www-data bash
если Вы абсолютно должны; но я не вижу, почему это было бы необходимо.
В системах, полученных из Debian, Apache работает по умолчанию при пользователе www-data
. Чтобы заставить его работать под другой учетной записью пользователя, необходимо отредактировать файл /etc/apache2/envvars
. Искать export APACHE_RUN_USER=www-data
и export APACHE_RUN_GROUP=www-data
и измените их для соответствия требованиям.
Выполнение веб-сервера в соответствии с Вашей учетной записью может или не может иметь последствий безопасности в зависимости от определенной установки. Лучший путь может состоять в том, чтобы позволить Apache, выполненному под www-data
(чтобы ограничить его полномочия) и изменить владение каталогов, врученных Apache Вашей учетной записи. Каталоги, где у апача должен быть доступ для записи, могут быть сделаны принадлежавшими пользователю www-data
и Ваша группа, с набором битов идентификатора группы набора и доступом для записи для группы.
Теперь, если Вы все еще настаиваете, чтобы Вы хотели, чтобы Ваша интерактивная учетная запись была названа www-data
самый простой путь состоит в том, чтобы взять владение всех файлов, принадлежавших учетной записи www-data
или группа www-data
, удалите учетную запись и группу www-data
, затем переименуйте свою учетную запись и основную группу www-data
. Я не объясню подробно, как выполнить эту бесполезную, сложную и подверженную ошибкам процедуру.