Назад | Перейти на главную страницу

Другая оболочка для входа по SSH на определенных машинах

У меня есть пользователи Active Directory без локальных учетных записей, поэтому они не могут используйте chsh. Они могут войти на несколько разных типов серверов и в большинстве случаев /bin/bash - это правильная оболочка, или, по крайней мере, для большинства пользователей предпочтительная оболочка доступна на большинстве серверов.

Однако есть пара исключительных случаев. Например, на большинстве компьютеров Mac через Homebrew установлены пользовательские / последние оболочки. Они должны, например, держать /bin/bash является системной оболочкой (без обмана символических ссылок!), но у вас установлена ​​более свежая версия Bash через Homebrew по адресу /usr/local/bin/bash. Тот факт, что этого нет на большинстве серверов, по-видимому, не позволяет использовать свойство AD для изменения глобальной оболочки по умолчанию.

Можно ли указать оболочку, которая sshd запускается для такой учетной записи на конкретной машине (вне зависимости от логина / интерактивного статуса)? Исключительные случаи, как правило, немногочисленны и пока происходят только на машинах для разработки, которые находятся под контролем пользователей, желающих выполнить настройку. В качестве альтернативы, существуют ли другие свойства AD, которые можно использовать для обеспечения большей детализации (например, укажите /usr/local/bin/bash и имеют резервное поведение для другого свойства на серверах, на которых отсутствует этот путь).

Я предполагаю, что вы используете LDAP

Чтобы переопределить оболочку входа в систему для конкретной машины, вам необходимо добавить следующую директиву в конфигурацию LDAP машины (/etc/ldap.conf в большинстве случаев)

nss_override_attribute_value loginShell <shell>

И перезапустите соответствующие службы AD, затем используя подходящий для вашего дистрибутива метод