«Этот аккаунт в настоящее время недоступен» ошибка при попытке ssh

46

При попытке установить соединение SSH возникает ошибка:

$ ssh -p 22 www-data@x.x.x.x 
This account is currently not available
Мерт Озогул
источник

Ответы:

59

Вы получаете сообщение об This account is currently not available.ошибке, потому что для пользователя www-dataустановлена оболочка /usr/sbin/nologin, и она установлена ​​по очень веской причине. Вы не должны входить в систему как www-data, это специальный пользователь / группа, используемая веб-сервером, не предназначенная для обычного использования оболочки.

РЕДАКТИРОВАТЬ : Это особенно плохая идея, чтобы дать sudoправа www-data. Если бы Apache предназначался для работы с правами root, у него не было бы своей собственной группы. Делая это, вы создаете огромные дыры в безопасности. Вы были предупреждены.

kraxor
источник
5
Это не очень конструктивно. Как вы думаете, какую информацию я должен добавить, чтобы этот ответ был лучше?
kraxor
4
@kraxor верен, но если вам нужно, вы можете войти в систему как root и изменить / usr / sbin / nologin в / etc / passwd на / bin / bash, и он предоставит этому пользователю доступ к оболочке. Я делаю это, когда просто запускаю бинарный файл в качестве моего веб-сервера. www-данные обычно зарезервированы для nginx / apache в Ubuntu, следовательно, нет статуса входа.
engineerDave
4
@RyanNerd Это ваш выбор не "давать крысам $$ по поводу дерьма безопасности". Запускать все с правами root не рекомендуется даже внутри Docker. Конечно, вы можете настроить Apache на запуск rootили добавить оболочку для входа www-data, но это все равно, что открыть бутылку вина, разбив бутылку, потому что вы слишком ленивы и неосторожны, чтобы использовать штопор.
kraxor
@kraxor Ваша ссылка на Docker устарела. ВСЕ все еще принадлежит root в Docker, и это все еще проблема .
RyanNerd
У меня похожий случай. Я хочу запустить LibreOffice в автономном режиме таким образом, чтобы он мог вызываться PHP-скриптом для преобразования документов и чтобы он мог записывать файлы на диск как www-данные, потому что эти файлы впоследствии необходимо удалить с помощью www-data (часть сценарий PHP), чтобы очистить их. Это (запуск безголового LibreOffice в качестве пользовательских www-данных) использовалось в предыдущих версиях Ubuntu, и я понимаю, что это улучшение безопасности по сравнению с этими более ранними версиями.
ywarnier
58

Хотя я согласен с другими, что разрешить вход через SSH через пользователя www-data - это, как правило, плохая идея, но после того, как вы вошли в систему с обычным пользователем, может быть полезно запускать несколько команд одновременно с набором разрешений www- пользователь данных. В этом случае можно запустить

sudo su -l www-data -s /bin/bash

и вы сможете получить доступ к своим файлам как пользователь www-данных.

Д. Скотт Боггс
источник
3
Очень полезно для отладки разрешений для пользователя демона / службы
jmng
Вы только что спасли мой день, спасибо! У меня были проблемы с запуском службы perl-fcgi, потому что сценарий запуска не использовался-s /bin/bash
Couitchy
-1

Первый вопрос, который мне нужно задать, это то, что вы пытаетесь достичь, делая это?

kraxor верен на 100%, вы никогда не сможете использовать ssh на своем сервере, используя своего пользователя Apache / Nginx. Это приглашает каждого хакера с половиной мозговых клеток на ваш сервер.

Если вам нужно запустить скрипт или какую-то программу от имени этого пользователя, вы можете попробовать sudo -u www-data yourscriptили временно можете отправить chownфайл пользователю с правами входа в систему. Это просто плохая идея разрешить этой учетной записи такой доступ.

TheStarvingGeek
источник
6
Вы должны знать, что su -это не работает для учетных записей с отключенным входом в систему.
сорин
Какой аккаунт отключен? В нем ничего не сказано об отключении учетной записи
TheStarvingGeek
1
Хорошо иметь nologin в passwd означает отключить вход в систему :)
Сорин
1
Это служебная учетная запись, а не отключенная учетная запись, вы можете запускать команды под ней
TheStarvingGeek
Мой сервер, кажется, не знает об этом различии @TheStarvingGeek
LovesTha