Setzen Sie das Benutzerpasswort ohne root zurück

8

Gibt es eine Möglichkeit, Nicht-Root-Benutzern das Ändern des Kennworts eines anderen Benutzers zu ermöglichen? Insbesondere gibt es eine Möglichkeit, Helpdesk-Mitarbeitern die Möglichkeit zu geben, Kennwörter zurückzusetzen. Der Helpdesk kann bereits Windows-Kennwörter zurücksetzen, was leicht zu delegieren ist.

Diese befinden sich auf einer Vielzahl von Servertypen, die meisten jedoch auf HP-UX. Leider verhindern die auf dem Server ausgeführten Anwendungen die Verwendung von LDAP, sodass diese Server unabhängig sind und Benutzer ihre Kennwörter vergessen. Häufig. Das Erfordernis eines Serveradministrators, der das Root-Passwort kennt, insbesondere mitten in der Nacht, ist eine Verschwendung von Ressourcen.

Wenn dies möglich ist, verhindert dies auch, dass der Benutzer root ändert, wie Windows verhindert, dass Benutzer Administratorkennwörter von Nicht-Administratorkonten ändern.

Brian
quelle

Antworten:

8

Fügen Sie eine Gruppe namens Helpdesk hinzu und fügen Sie alle Holdesk-Benutzer hinzu. Fügen Sie dann Folgendes zur sudoers-Datei hinzu.

%helpdesk ALL=/usr/bin/passwd

Jetzt können sie sudo Passwörter ändern, aber sonst nichts.

Jim
quelle
1

Angesichts der Tatsache, dass HP-UX PAM unterstützen soll, darf ich hier den folgenden vorläufigen sauberen Ansatz zur Lösung dieses Problems erwähnen:

Verwenden Sie pam_tcb (tcb - die Alternative zu / etc / shadow) , und es gibt Benutzerpasswortdateien pro Benutzer. Sie können ohne Root-Rechte bearbeitet werden (in Owl passwd ist das Root-Set nicht UID), und Sie kann die Berechtigung zum Ändern der Kennwörter bestimmter Benutzer (und nicht der anderen, z. B. "root") für eine bestimmte Gruppe erteilen (indem einfach die Berechtigungen der Schattendateien geändert werden).

Aber es ist wahrscheinlich noch keine praktische Lösung, da ich keinen Port für pam_tcbHP-UX sehe .

imz - Ivan Zakharyaschev
quelle
-1

Update: Nevermind, passwd ist bereits setuid root. Hoppla.

Sie können dem passwd-Programm das Attribut setuid geben. Mach einfach

sudo chmod u+s `which passwd`

Stellen Sie dann sicher, dass nur bestimmte Benutzer es verwenden können. Ändern Sie daher die Gruppe und beschränken Sie die Berechtigungen:

sudo chgrp password_reset_delegates `which passwd`
sudo chmod 770 `which passwd`

Und fügen Sie Ihre Benutzer dieser Gruppe hinzu

sudo adduser frank password_reset_delegates
sudo adduser barbara password_reset_delegates

Möglicherweise möchten Sie eine Kopie des passwd-Programms ohne die setuid erstellen, damit andere Benutzer ihr eigenes Kennwort ändern können.

Alternativ können Sie sudo einrichten und sudo nur den Helpdesk-Benutzern Zugriff auf das passwd-Programm gewähren.

James
quelle
Durch die Verwendung der Sudo-Zugriffsmethode wird bei Bedarf auch ein netter Prüfpfad zur Überprüfung erstellt. Sie können sehen, wer was für welche Benutzer tut.
Mcmeel
sudo ist der Weg, den ich gehen würde, aber jemand hat das bereits gepostet, und ich dachte, ich würde Optionen präsentieren.
James
Potenziell clevere Idee, abgesehen von der Tatsache, dass passwdsuid root bereits ausgeführt wird, da es in die Systemkennwortdatenbanken schreiben muss.
MikeyB
haha, oops, du hast recht.
James
Löschen Sie Ihre Antwort, wenn sie falsch ist;).
Bart De Vos