Тут недавно в чатике была поднята интересная тема про SFTP. И я решил проверить и немного систематизировать знания.

Итак: если пользователю прописать оболочкой /usr/sbin/nologin:

sudo usermod -s /usr/sbin/nologin user

Это вовсе не означает, что пользователь не может получить доступ к системе.

Да, он не может залогиниться с клавиатуры и зайти по SSH. Но он вполне МОЖЕТ ПОЛУЧИТЬ ДОСТУП К ФАЙЛАМ по SFTP при условии, что в файле /etc/ssh/sshd_config есть строка Subsystem sftp internal-sftp, не знаю как сейчас, а раньше эта подсистема была установлена по умолчанию.

Логика разработчиков вполне понятна. Работал человек, работал, доступ ему закрыли, но результат работы забрать может. Это похоже на то, как жена выставляет чемодан у двери гулящему мужу.

Заткнуть эту дырку очень просто. В файле /etc/ssh/sshd_config заменим подсистему SFTP:

#Subsystem sftp internal-sftp
Subsystem sftp /usr/lib/openssh/sftp-server

Теперь проверка правильности конфигурации и перезапуск службы в случае успеха.

sudo sshd -t && sudo systemctl restart sshd

В этом случае при попытке входа по SFTP получим сообщение:

Received message too long 1416128883 Ensure the remote shell produces no output for non-interactive sessions.
Tagd Tagd
Tagd Tagd
Bash Master
Задать вопрос
Резюмирую: При оболочке nologin можно получить доступ к файлам если sftp internal-sftp.

Сможешь спать спокойно, не заглянув в /etc/ssh/sshd_config? :-)