Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Antwort
 
Themen-Optionen
Alt 18.04.2008, 14:35   Nach oben    #1
xardias
Erfahrener Benutzer
 
Benutzerbild von xardias
 
Registriert seit: 02.03.2006
Ort: Aachen
Beiträge: 101
Standard "include" in /etc/passwd

Hallo allerseits!

Da ich mit meinem Tool gerne unix Benutzerdaten generieren möchte habe ich überlegt ob es möglich ist diese Daten außerhalb von /etc/passwd zu lagern.
Ich habe mir als Prinzip gesetzt dass das Tool keinerlei Systemdateien editiert sondern alle Daten in einem Konfigurationsordner erstellt. Diese müssen dann in die eigentliche Konfiguration eingebunden werden.

Ich will damit vermeiden dass man durch einen dummen Fehler bei der Verwendung oder einfach durch einen Fehler im Tool Systemdaten verloren gehen. Daher will ich es vermeiden /etc/passwd direkt zu editieren.

Ich weiß dass man mit PAM allerlei Systeme zur Autentifizierung einbinden kann wie z.B. mysql.
Weiß jemand ob es eine möglichkeit gibt mehr oder weniger 2 mal das unix Modul einzubinden und 2 verschiedene passwd Daten zur Autentifizierung einzubinden?
Oder wirklich eine Art include direktive in /etc/passwd?

Die letzte Lösung wäre es solch eine include direktive durch mein konfigurations tool zu implementieren. So dass beim erstellen der konfiguration alle daten nach /etc/passwd kopiert werden, wobei dabei start und end marker eingefügt werden um beim nächsten mal die daten updaten zu können..
Aber wie gesagt.. ich will das direkte editieren von /etc/passwd vermeiden.

Liebe Grüße,
Dennis
xardias ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.04.2008, 14:40   Nach oben    #2
robo47
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.188
Standard

hmm wie wäre es anstatt die datei direkt anzusprechen, vielleicht die befehle
adduser/group
deluser/group
chpasswd
zu nutzen, damit schreibst du nur indirekt und hast eine eventuelle fehler filternde Instanz dazwischen
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.04.2008, 16:23   Nach oben    #3
Sclot
Projektleiter
 
Benutzerbild von Sclot
 
Registriert seit: 18.08.2005
Ort: Bremen
Beiträge: 145
Standard

Du könntest auch deine normalen system-dateien einmal sichern und dann z.b. für das beispiel der /etc/passwd einen symlink auf deine eigene config lenken.
Sclot ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.04.2008, 19:55   Nach oben    #4
xardias
Erfahrener Benutzer
 
Benutzerbild von xardias
 
Registriert seit: 02.03.2006
Ort: Aachen
Beiträge: 101
Standard

Letzteres will ich ungerne machen weil das backup der systemdatei dann veraltet ist. Änderungen an passwd durch neu installierte software werden dann nur noch in "meine" passwd eingefügt.

Ich habe irgendwo mal aufgeschnappt dass es möglich ist 2 Dateien über links zu einer zusammen zu fügen so dass die zweite Datei an die erste angehängt wird.
xardias ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.04.2008, 09:54   Nach oben    #5
Doggi
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard

Hi, ich habe jetzt leider nur Suse hier zum testen, aber schau mal in die /etc/logindefs (kann und wird auf anderen Systemen variieren, im Solaris wird es unter /etc/defaults/login sein).
dort findest du einen Eintrag /usr/sbin/useradd.local. Dieses Script wird aufgerufen wenn du user hinzufügst. Die sicherste Lösung ist also wie robo47 schon sagte über die Systembefehle useradd / usermod / userdel. So schliesst du Syntaxfehler in der Passwd aus. Parallel dazu kannst du dann in dem Script eine Kopie der passwd anlegen wo du dem user noch ein Erstellungsdatum anfügst. So hast du zusätzliche Kontrolle über das Erstellungsdatum des Users auf dem System. So kannst du mit awk / sed diese Kopie auch per script sauber wieder maintainen.

Du darfst ja nicht vergessen das du noch die /etc/shadow bearbeiten musst / homedirs etc. Es ist ja nicht mit der passwd getan

Was die Links angeht so kann ich sagen das man keinen Link auf zwei Dateien setzen kann. Denn in einem 512 Byte Block liegt zwar dann die Inodetable für die Inodes der Datei, aber dein Filesystem würde wohl meckern wenn wenn es unter ein und demselben Link meherere "Stücke" von zwei Dateien findet. Ich wüsste auch nicht wie man die Inode direkt bearbeiten könnte um das Filesystem auf diese Art auszutricksen. Abgesehen davon würde es dann rein von der Logik her wieder zu einer Datei werden wenn die Inode auf alle inodes von beiden Files zeigt

Wenn Du den Link innerhalb der Datei meinst, so musst du verstehen das die passwd nur geparsed wird und du deshalb keine includes machen kannst. Immerhin hat es auch etwas mit Sicherheit zu tun, wie man mit dieser Datei umgeht. Diese Datei darf nur Root bearbeiten Genauso wie useradd, usermod und userdel.

Schlagt mich wenn ich blödsinn rede
__________________
Wer später bremst, fährt länger schnell...

Geändert von Doggi (23.04.2008 um 10:20 Uhr).
Doggi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:10 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44