Почему Python 'gethostname()' возвращает все FQDN при запуске на консоли сервера FreeNAS?

Обычно я бы сказал, что / bin / false и / sbin / nologin - одно и то же, но я полагаю, это зависит от того, какой SSH-сервер вы используете.

Было бы разумно указать, что этот недавний эксплойт в OpenSSH, похоже, влияет на / bin / false logins, но НЕ на / sbin / nologin. Однако в нем говорится, что Dropbear отличается в этом отношении (также эксплойт специально применяется к OpenSSH).

Эксплойт затрагивает большинство версий:

7.2p1 и ниже (все версии; возраст около 20 лет) С включенной пересылкой X11

https://www.exploit-db.com/exploits / 39569 /

Исходя из этого - я бы лично сделал / sbin / nologin, однако я не уверен, может ли это повлиять на службы, которые создают запись / bin / false в / etc / passwd. Вы можете поэкспериментировать и увидеть свои результаты, но, пожалуйста, делаете это на свой страх и риск! Я полагаю, что в худшем случае вы можете просто изменить его и перезапустить любую службу (а). Лично у меня довольно много записей с использованием / bin / false - не уверен, что я хочу возиться с этим, поскольку перенаправление X11 - это не то, что я включил;)

Если вы используете OpenSSH (многие люди, я думаю ...) И включите пересылку X11 - вы можете рассмотреть / sbin / nologin (или, возможно, переключиться на Dropbear).

0
18.02.2019, 00:08
1 ответ

Я думаю, что он просто возвращает то, что делает лежащий в основеgethostname()вызов . Например (, хотя это в Linux):

# hostname foobar
# python -c 'import socket; print(socket.gethostname()) '
foobar
# hostname foobar.example.org                                                                                       # python -c 'import socket; print(socket.gethostname()) '
foobar.example.org

Если вам нужна только часть имени хоста, удалить остальное несложно:

# python -c 'import socket; import re; print(re.sub("\..*", "", socket.gethostname()))'
foobar
1
28.01.2020, 03:59

Теги

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