При создании нового пользователя в Debian (или другой linux-системе) можно задать ему разные системные оболочки, которые будут обслуживать его при правильном вводе логина и пароля в системе. Для этого нужно её указать в шаблоне создания пользователя или ввести явно при создании нового пользователя командой useradd -s
(см. подробнее по первой ссылке в этой статье). Всё это хорошо, но некоторые системные оболочки не прописаны в системе и для того, чтобы ими можно было пользоваться, для начала их нужно занести в систему.
/etc/shells
— файл разрешённых оболочек для входа пользователя в операционную систему Debian
Итак, например, вы создаёте ftp-пользователя, которому не обязательно иметь shell-доступ в систему и прописываете ему оболочку /bin/false
так, чтобы он мог пользоваться только командами fto-протокола, но не мог ничего больше на сервере. Но при попытке зайти на сервер вылетает ошибка. Заходим в логи ftp-сервера и видим запись:
FTP session opened.
USER tester (Login failed): Invalid shell: '/bin/false'
То есть система не может распознать shell-оболочку и рвёт соединение с пользователем.
Список всех разрешённых в системе shell-оболочек находится в файле /etc/shells
.
Исходный /etc/shells
Посмотрим содержимое файла /etc/shells
:
root@server:~# cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
Действительно, оболочки /bin/false
, и теперь не удивительно, что сервер не даёт пользователю с этим shell зайти в систему.
Добавление новой shell-оболочки в системный файл /etc/shells
Найдя причину ошибки, исправить её не составит труда. Либо ручками, либо командой в консоли:
root@server:~# echo '/bin/false' >> /etc/shells
добавим ещё одну shell-оболочку /bin/false
.
Резюме
В конечном итоге, когда файл /etc/shells
выглядит так:
root@serber:~# cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/false
(см.последнюю строчку), пользователь нормально входит в систему и может работать в ней по протоколу ftp, пользуясь тем набором команд, который позволет ему его клиент и ваш ftp-сервер. Ура!
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)