Welchen Befehl soll ich ausführen, nachdem ich Änderungen an der Datei / etc / passwd vorgenommen habe?

12

Ich habe einige Änderungen an der Datei / etc / passwd vorgenommen. Jetzt wollte ich sehen, ob die Änderungen wirksam wurden oder nicht. Welchen Befehl soll ich dafür ausführen?

Nachdem ich zum Beispiel die Datei / etc / ssh / ssh_config geändert habe, führe ich den Befehl /etc/init.d/sshd aus.

RAM
quelle

Antworten:

19

Verwenden Sie, um die passwdentsprechende shadowDatei zu überprüfen pwck. Verwenden Sie ', um die groupentsprechende gshadowDatei zu überprüfen grpck. Einzelheiten zu den von ihnen ausgeführten Aktionen finden Sie auf den Hilfeseiten.

Das Bearbeiten von Hand /etc/passwderfolgt (wenn überhaupt) am besten mit vipwund vipw -sfür die shadowDatei. Für die /etc/groupund /etc/gshadowVerwendung vigrund vigr -ssind. Die Verwendung dieser Tools bietet nicht nur eine Sperre, um mehrere gleichzeitige Benutzeraktualisierungen zu verhindern, sondern bietet auch eine Gültigkeitsprüfung.

Im Allgemeinen werden Änderungen an den Kennwort- und Gruppendateien am besten mit dem Standard user(add|mod|del)und den group(add|mod|del)Tools vorgenommen.

JRFerguson
quelle
7

Es gibt keinen solchen Befehl, um Änderungen aus der Datei / etc / passwd zu übernehmen.

Wenn ein Benutzer angemeldet ist, dessen Daten Sie geändert haben, muss er sich erneut anmelden, um die Änderungen zu übernehmen. Wenn nicht, sind sie sofort nach dem Login verfügbar.

Dies liegt daran, dass login während der Anmeldung Details aus der passwd-Datei liest und diese bis zur Abmeldung im Speicher behält.

eilen
quelle
2
"... kein solcher Befehl ..." unter Linux . Viele andere * ixes haben solche Befehle. Die passedDatei wird entweder in ein Binärformular kompiliert, das schneller zu verarbeiten ist, oder sie wird nur aus Kompatibilitätsgründen aufbewahrt, und die Daten müssen in das native Kennwort-DB-Formular des Betriebssystems übersetzt werden.
Warren Young
2

Ich hatte Erfolg mit dem update-passwdBefehl, nachdem ich die Datei / etc / passwd auf Debian-basierten Systemen (zB Ubuntu) manuell bearbeitet hatte. Ich weiß, dass dies NICHT die beabsichtigte Verwendung dieses Befehls ist, aber es funktioniert auch für diesen Zweck. Weitere Details finden Sie in der Manpage: http://manpages.ubuntu.com/manpages/precise/man8/update-passwd.8.html

Auf Red Hat / CentOS-basierten Systemen konnte ich keinen entsprechenden Befehl finden. Auf diesen Systemen musste ich einen Systemneustart durchführen, damit die Änderungen wirksam werden.

Wie bereits erwähnt, ist es am besten, die Datei / etc / passwd nicht manuell zu bearbeiten. Stattdessen verwende ich nach Möglichkeit die Befehle useradd / userdel / usermod. Der einzige gültige Grund für die Bearbeitung der IMO-Dateien / etc / passwd und / etc / group ist, wenn ich viele Konten von einem anderen System kopieren muss. Nach dem Hinzufügen von beispielsweise 100 Konten auf diese Weise führe ich normalerweise einen vollständigen Systemneustart durch. Wenn Sie die Dateien / etc / passwd und / oder / etc / groups manuell bearbeiten, dürfen Sie auch nicht vergessen, die entsprechenden Schattendateien zu bearbeiten.

Zoltan
quelle
1

Ich glaube nicht, dass es einen solchen Befehl gibt, da er überhaupt nicht erforderlich ist. Es ist auch nicht ratsam, diese Datei direkt zu bearbeiten, sondern die entsprechenden Befehle wie useradd und passwd zu verwenden

Wenn Sie nicht überzeugt sind, starten Sie einfach nach dem Bearbeiten der Datei neu und alle Änderungen werden wirksam

Hinklo
quelle
0

Sie sollten nicht /etc/passwdmanuell ändern . Verwenden Sie usermodstattdessen

Beispielsweise:

Wenn Sie das Basisverzeichnis des Benutzers ändern möchten, verwenden Sie diesen Befehl:

usermod --home /path/to/home/dir username
Sun Kuo
quelle
1
Es ist manchmal notwendig, die Datei von Hand zu bearbeiten, vipwsollte dann aber verwendet werden.
Kusalananda
Verstanden @Kusalananda
Sun Kuo