Forumadduser: /etc/passwd konnte nicht geöffnet werden. CENTOS
Max – Mittwoch, 24. November 2021 10:54 Uhr

Hallo zusammen,

ich hoffe mir kann hier einer weiterhelfen…
Ich wollte als root-Benutzer einen neuen Benutzer auf unserem CentOs-Server anlegen.
Jedoch bekomme ich immer eine Fehlermeldung!
adduser: /etc/passwd konnte nicht geöffnet werden.
Kann mir einer erklären wieso das nicht funktioniert?
Liebe Grüße

2 Antworten
Kai – Donnerstag, 25. November 2021 13:21 Uhr

Welche Rechte hat /etc/passwd? Kannst du mal
ls -la /etc/passwd
aufrufen?

Max – Donnerstag, 25. November 2021 14:17 Uhr

-rw-r–r–. 1 root root 719 26. Mai 2021 /etc/group
-rw-r–r–. 1 root root 1591 8. Dez 2020 /etc/passwd
———-. 1 root root 1071 7. Dez 2020 /etc/shadow

Kai – Donnerstag, 25. November 2021 21:37 Uhr

Ist /etc/passwd ein symbolischer Link?

0xc3 – Freitag, 26. November 2021 03:40 Uhr

Ein SymLink würde sich mit lrwxrwxrwx darstellen.

Die passwd scheint so zu sein wie sie sein soll. Wenn mit der Datei was nicht stimmt, hättest du viel mehr Fehler & Probleme :) Aber um ganz auf Nummer sicherzugehen: Ich nehme an, du hast auch einen normalen Benutzeraccount, also nicht root? Versuche dich damit einzuloggen. Falls das funktioniert, gibt es an der passwd in dieser Hinsicht definitiv nichts zu meckern.

Das Problem sehe ich eher in “adduser” (in Abgrenzung zu “useradd”). Das von dir genutzte “adduser” ist kein natives Kommando sondern ein Perl-Skript, dass das native useradd verwendet und automatisch User-Verzeichnis und die entsprechenden Einträge, etc. erstellt. Das Skript ist ziemlich primitiv und wenn am System irgendetwas nicht so konfiguriert ist, wie es das Skript erwartet, geht es schief.

Mein Vorschlag: Nutze “useradd”, und mache den Rest selbst; siehe “man useradd”. Im Netz gibt es genug Infos & Anleitungen zu dem Kommando.

Kai – Freitag, 26. November 2021 10:22 Uhr

Er ist ja als Root unterwegs. Deswegen irritiert mich das alles. Es kann auch sein, dass es noch ein Lock-File gibt beziehungsweise ein anderes Programm die passwd bearbeitet.

0xc3 – Freitag, 26. November 2021 15:38 Uhr

Das advisory locking ist nur eine “Empfehlung” eines anderen Programms – alle tools die via adduser auf root genutzt werden (an dieser Stelle: useradd), würden das ignorieren. Ein mandatory locking funktioniert nur, wenn bereits beim mounten “-o mand” verwendet wird, CentOS selbst nutzt das nicht bzw. würde von sich aus nichts mit -o mand mounten, daher nutzen auch die meisten anderen tools/apps diese Funktion nicht. Das wäre also nur möglich, wenn Max das selbst in der /etc/fstab beim mount von / hinzugefügt hätte. Ich gehe davon aus, dass er das nicht getan hat, da es für diese Funktion eigentlich kaum Nutzungsmöglichkeiten gibt.

Aus dem Stegreif und ohne log-Daten fällt mir nur SELinux ein, dass hier einen Zugriff verhindern könnte, der sich mit einer derartigen Fehlermeldung darstellt. Doch sehe ich keinen Grund warum SELinux root daran hindern sollte, eine Zeile in passwd hinzuzufügen, es root aber weiterhin erlaubt, sich auf bash einzuloggen.

Insofern, falls useradd auch nicht klappt:
1) Welche Fehlermeldung gibt useradd aus? Ist es die Selbe?
2) Unmittelbar nach dem fehlerhaften Ausführen von “useradd”, führe aus:
tail /var/log/audit/audit.log;
-> hier zeigst du uns die letzten 10 Zeilen deiner Systemlogs. Wenn nicht Unmengen an Services & Zugriffen parallel stattfinden, dürften 10 Zeilen reichen. Nutzernamen o. Ä. kannst du anonymisieren.

Max – Donnerstag, 25. November 2021 21:30 Uhr

-rw-r–r–. 1 root root 719 26. Mai 2021 /etc/group
-rw-r–r–. 1 root root 1591 8. Dez 2020 /etc/passwd
———-. 1 root root 1071 7. Dez 2020 /etc/shadow