Я не говорю о программировании оболочек или создании совершенно новой оболочки, такой как Bourne или Korn Shell...
Я просто хочу, чтобы пользователь, получающий доступ к FTP через порт 21, был перенаправлен на эту оболочку, которая может поддерживать некоторые из основных команд, используемых оболочкой!
Я искал то же самое в Google... но не нашел никаких удовлетворительных результатов.
решение1
Обычно оболочки Korn и Bash имеют "ограниченная оболочка" режим. Попасть в ограниченную оболочку можно так же просто, как набрать rsh
(избегайте "remote shell" - определенно не лучшая идея в 2012 году) или rbash
. Но я не уверен, что вы хотите.
Протокол FTP может позволить клиенту отправлять произвольные команды (с QUOTE), но сервер FTP ( ftpd
), вероятно, не должен просто выполнять все, что он получает. У серверов FTP долгая история проблем безопасности, отчасти из-за самого протокола FTP, отчасти из-за небрежного программирования или тонких ошибок.
Используя ftp
(клиентскую программу), вы можете получить доступ к списку файлов на ftpd
машине (серверной программе) или изменить ftpd
каталоги, но даже если вы назначите ограниченную оболочку идентификатору пользователя «ftp», вы не заставите клиента ftp
выполнять произвольные действия на FTP-сервере (машине).
Вы можете получить то, что хотите, настроив идентификатор пользователя с ограниченной оболочкой, а затем разрешив доступ SSH для этого идентификатора пользователя. Я не могу понять из вашего вопроса.