Как я проверяю, существует ли пользователь в марионетке?

После конфигурирования AMT для слушания на общем IP-адресе я запустил тест, упомянутый kasperd в комментариях выше. (против моего собственного удаленного хоста с сервером SSH, не на самом деле example.com, конечно), Вот результат:

Положительный тестовый сценарий (использующий порт не используемый AMT):

$ nc -p 16991 example.com 22
SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.4
^C
$

Отрицательный тестовый сценарий (использующий порт, используемый AMT):

$ nc -p 16992 example.com 22
$

(После того, как несколько минут, отрицательный приведенный к таймауту тестовый сценарий и возвратились к приглашению оболочки.)

Поэтому, как Вы видите, пакеты, возвращающиеся для портирования 16992, были отброшены, прежде чем они достигли стека TCP/IP хоста.

Рекомендация: если надежные сети важны для Вас, не включайте AMT на том же IP-адресе как Ваш стек TCP/IP хоста!

4
задан 24 January 2013 в 10:42
1 ответ

Почему бы просто не добавить фактический факт и не проверить его?

с моим установки на марионетке 3, я бы поместил следующее в modules / fact / lib / facter / user_exists_blah.rb

require 'facter'
Facter.add(:user_exists_blah) do
  setcode do
    name = "blah"
    Facter::Util::Resolution.exec("/usr/bin/id -u #{name} 2>/dev/null")
  end
end

И затем использовал его как

if $::user_exists_blah {
}

Пустая строка оценивается как ложь, поэтому вы можете просто использовать ее как логическое

5
ответ дан 3 December 2019 в 03:19

Теги

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