2017-04-25 4 views
0

(mein C ist ein bisschen rostig)Wie Zeichenfolge von pam_set_data erstellt exportieren()

ich einige Daten von außerhalb des Authentifizierungsprozesses in die resultierende Schale (oder möglicherweise andere Dienste) übergeben werden soll. Mir fällt ein, dass ich die Daten in den gesendeten Benutzernamen einbetten könnte, dann am oberen Rand des PAM-Stacks den Benutzernamen und die Daten trennen, den Benutzernamen aktualisieren (mit pam_set_item()) und die Daten beibehalten (zB mit pam_set_data()) aber wie präsentiere ich dann die Daten dem zu authentifizierenden Dienst?

Wenn ich nur setenv (* varname, * data, 1), wird dies ausreichen, damit es in der untergeordneten Prozessumgebung erscheinen?

Wenn ich pam_set_data() verwende erstellt dies einen Bezeichner, den ich in pam_env verwenden kann?

Antwort

0

Ja, Sie können pam_set_data() verwenden, aber um es in Ihr Programm zu bekommen, müssen Sie pam_get_data() verwenden. Wenn Sie möchten, dass Ihre Daten in der Umgebung verfügbar sind, werfen Sie einen Blick auf das Modul pam_env.so.

+0

Sicher kann ich nur mit pam_get_data() in demselben Prozess lesen, in dem ich pam_set_data() aufgerufen habe? Und ich habe nur in der Dokumentation für pam_env – symcbean

+0

einen festen, vordefinierten Namenssatz für Variablen erwähnt. Ja, Sie müssen sich im selben Prozess befinden, um pam_get_data() verwenden zu können. Mit pam_env können Sie beliebige Umgebungsvariablen in eine Datei einfügen und für den Prozess laden. – yoones

Verwandte Themen