Что происходит, если у пользователя не установлена оболочка по умолчанию?

Решением было расширить диапазон карты id, видимый в ldap ldap, наше объявление очень большое, и похоже, что диапазон по умолчанию был недостаточно большим, чтобы охватить всех пользователей в диапазоне, что означает, что он сможет преобразовать только objectSID, который он мог видеть. Мой SID был намного выше, чем у моего коллеги, поэтому он смог войти в систему, а я - нет.

Решением было добавить следующее в основную часть SSSD.conf

ldap_idmap_default_domain_sid = SID OF THE DOMAIN
ldap_idmap_range_min = 200000
ldap_idmap_range_max = 2000200000
ldap_idmap_range_size = 1000000

Ссылка: https://lists.fedorahosted.org/archives/list/sssd-users@lists.fedorahosted.org/thread/2YYG6LPUYWX2TUTD5SY5NNTHOTQQIJTD/

4
22.11.2016, 18:24
3 ответа

Давай попробуем!

Оболочка изменена на сервере:

[myserver ~]% getent passwd myuser
myuser:x:150:150:myuser:/home/myuser:/foo

Давайте авторизуемся:

[myclient ~]% ssh myserver
Received disconnect from myserver: 2: Too many authentication failures for myuser

Из журналов SSH на сервере:

Nov 22 09:30:27 myserver sshd[20719]: Accepted gssapi-with-mic for myuser from myclient port 33808 ssh2
Nov 22 09:30:27 myserver sshd[20719]: pam_unix(sshd:session): session opened for user myuser by (uid=0)
Nov 22 09:31:18 myserver sshd[20727]: Received disconnect from myclient: 11: disconnected by user
Nov 22 09:31:18 myserver sshd[20719]: pam_unix(sshd:session): session closed for user myuser
Nov 22 09:31:20 myserver sshd[20828]: User myuser not allowed because shell /foo does not exist
Nov 22 09:31:20 myserver sshd[20835]: input_userauth_request: invalid user myuser
Nov 22 09:31:20 myserver sshd[20835]: Disconnecting: Too many authentication failures for myuser

Ключевая строка: Пользователь myuser не разрешен, потому что shell / foo не существует . Таким образом, вы не можете войти в систему, если у вас нет действующей оболочки.

6
27.01.2020, 20:48

Нет отката. Появится сообщение об ошибке, например ...

Cannot execute /does/not/exist: No such file or directory.

Вы можете добавить вызов zsh , не изменяя AD.

echo 'exec zsh' >> ~/.bashrc

Затем каждый раз, когда вы входите в систему с помощью bash , вы автоматически запускаете zsh .

3
27.01.2020, 20:48

Как уже говорилось, вы застрянете в цикле входа в систему и не сможете войти в систему.

К сожалению, текущий ответ также вызовет циклы входа в систему, если он используется, так как вызов exec приведет к сбою. Он также будет игнорировать аргументы, переданные bash, предотвращая наиболее сложные варианты использования.

Добавление

[ -x "$(command -v zsh)" ] && exec zsh "$@"

поскольку первая строка .bashrcсначала проверяет, доступен ли zsh

Добавление

[ -n "$GNOME_TERMINAL_SCREEN" ] && [ -x "$(command -v zsh)" ] && exec zsh "$@"

следует также проверить, запускаете ли вы оболочку в терминале gnome вместо tty

0
13.05.2020, 10:07

Теги

Похожие вопросы