Помилка "Цей обліковий запис наразі недоступний" під час спроби зробити 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це спеціальна група / група, що використовується веб-сервером, і не призначена для регулярного використання оболонки.

EDIT : Це особливо погана ідея , щоб дати sudoправа www-data. Якби Apache мав працювати з кореневими дозволами, він би не мав власної групи. Роблячи це, ви створюєте величезні отвори в безпеці. Вас попередили


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, і це все ще проблема .
RyanNerd

У мене схожий випадок. Я хочу запустити LibreOffice в режимі без голови таким чином, щоб його можна було викликати скриптом PHP для перетворення документів і що він може записувати файли на диск у вигляді www-даних, оскільки ці файли пізніше потрібно видалити за допомогою www-data (частина PHP-скрипт) для їх очищення. Це (запуск безголового LibreOffice як користувацьких www-даних) використовувався для роботи в попередніх версіях Ubuntu, і я розумію, що це поліпшення безпеки в порівнянні з цими попередніми версіями.
ywarnier

57

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

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

і ви зможете отримати доступ до своїх файлів як користувач www-data.


3
Дуже корисно для налагодження дозволів для користувача демона / послуги
jmng

ти щойно врятував мені день подяки! У мене виникли проблеми із запуском послуги perl-fcgi, оскільки сценарій запуску не використовувався-s /bin/bash
Couitchy

-1

Перше питання, яке я маю би задати, це те, що ви намагаєтеся досягти, роблячи це?

kraxor на 100% вірно, ви ніколи не зможете ssh на свій сервер за допомогою користувача Apache / Nginx. Це запрошує кожного хакера з половиною клітини мозку на ваш сервер.

Якщо вам потрібно запустити скрипт або якусь програму в якості цього користувача, ви можете спробувати, sudo -u www-data yourscriptабо ви можете тимчасово надсилати chownфайл користувачеві з правами входу. Це просто різна погана ідея, щоб дозволити цьому обліковому запису такий доступ.


6
Ви повинні знати, що su -не працює для облікових записів із відключеним входом.
sorin

Який обліковий запис вимкнено? Там нічого не сказано про відключення облікового запису
TheStarvingGeek

1
Добре мати nologin у passwd означає відключити вхід :)
sorin

1
Це обліковий запис служби, а не обліковий запис, ви можете запускати команди під ним
TheStarvingGeek

Мій сервер, здається, не знає, що це відмінність @TheStarvingGeek
LovesTha
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.