По разным причинам мне нужно включить доступ по telnet (через частную сеть), и когда кто-то пытается войти в систему с определенной учетной записью пользователя (скажем, CheckStatus
), вместо того, чтобы предоставить пользователю оболочку, он вместо этого запускает очень-очень быстрый код / скрипт / что угодно и возвращает одну из двух очень конкретных строк. Эта учетная запись может иметь пароль.
По сути, я пытаюсь воспроизвести то, что происходит, когда вы пытаетесь подключиться по SSH к серверам Github, где вам говорят, что доступ к оболочке не предоставляется.
Я подумал, что решением этой проблемы будет замена оболочки пользователя, поэтому я создал сценарий:
#! /bin/bash
echo "HI!!!"
затем попытался установить его как оболочку пользователя через:
test@development-1:~$ chmod +x test.sh
test@development-1:~$ chsh
Password:
Changing the login shell for test
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /home/test/test.sh
chsh: /home/test/test.sh is an invalid shell
Есть идеи, как это сделать?
Для справки, большинство наших систем - это Ubuntu 14.04.
Лучший способ сделать это - использовать ssh и привязать ключ к определенной команде, используя ограничение 'command = ...', встроенное в открытый ключ.
chsh: /home/test/test.sh - недопустимая оболочка
Документация помогает здесь от чш (1)
ПРИМЕЧАНИЕ. Единственное ограничение, наложенное на оболочку входа в систему, состоит в том, что имя команды должно быть указано в / etc / shells, если вызывающая сторона не является суперпользователем, и тогда может быть добавлено любое значение.
Вам необходимо запустить chsh с соответствующими разрешениями или добавить подходящую запись в / etc / shells.