Как у меня может быть использование марионетки локальное (на ведущем устройстве) хэш пароля для пользователей?

Мы определяем пользователей как таковых:

user { 'belmin':
    ensure          => present,
    uid             => 308,
    comment         => 'Belmin Fernandez',
    managehome      => true,
    password        => '$6$NrtZpXEauUqjdRh0$vE9oJwbNTSWVCGrlDe4KHXFB0KXY7hszSas3v0DZvhUej4SIb/WLfaCy.lmSU7Hh8AAvAbPuDRai2p1X9mDcM0',
}

Я хочу определить тип, который заглянет /etc/shadow локальный для марионеточного ведущего устройства и, если пользователь там, используют тот хэш пароля вместо этого. Что-то как:

define our_user ($user = $title, $uid, $fullname, $default_hash) {

    $shadow_hash = get_hash_from_local_shadown_somehow

    if $shadow_hash == '' {
        $shadow_hash = $default_hash
    }

    user { $user:
        ensure          => present,
        uid             => $uid,
        comment         => $fullname,
        managehome      => true,
        password        => $shadow_hash,
    }
}

Что было бы get_hash_from_local_shadown_somehow быть в этом случае? Я вижу, что файл функционирует в puppet но не уверенный, как использовать это для обращения к этому, так как мне будет нужна еще некоторая обработка текста.

Примечание: Я знаю, что централизованная аутентификация была бы самой мудрой авеню, но это не непосредственная опция в данный момент.

1
задан 10 September 2014 в 18:47
1 ответ

Нашел способ сделать это на форуме Puppet с помощью функции generate :

Для этого вы можете использовать функцию generate ().

По сути, вы бы создали сценарий, который выполняет все, что вам нужно, тогда $ shadow_hash = generate ('/ path / to / script').

Я написал простой сценарий bash для получения хэша:

#!/bin/bash

SHADOW_FILE='/etc/shadow'

awk -F: "\$1 == \"$@\"" ${SHADOW_FILE} | awk -F: '{print $2}' || echo ''

А функция generate выглядит так:

$shadow_hash = generate('/bin/bash','/usr/local/sbin/extract_shadow_hash', $user)

Надеюсь, это поможет кому-то другому. Похоже на функцию, которая может быть полезна во многих случаях использования.

2
ответ дан 3 December 2019 в 21:13

Теги

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