Hi,
wenn man debian so bei der Arbeit zusieht, da fällt auf,
dass einige Programme Nutzer-Konten anlegen für die verschiedensten Aufgaben.
Meist sind das Server, die unter einem Nutzer laufen.
Der User wird bei Installation des entsprechenden Programms angelegt.
Z.B. Nutzer mongodb wird von Script mongodb-server.postinst angelegt.
Wie verhält sich dies nun, wenn der User bereits existiert?
Wie aus dem Script hervorgeht, wird der user nicht angelegt, wenn er bereits existiert. Das Installscript geht vermutlich davon aus, dass es den User selber angelegt hat, was aber in der Praxis nicht unbedingt der Fall sein muss.
Dabei entstehen mehrere Fragen:
Frage 1:
Gibt es eine Liste der reservierten Worte für Usernamen, die man nicht für seine eigenen
Zwecke verwenden sollte?
Falls nicht:
Frage 2:
Gibt es einen definierten Usernamen-Präfix, für den sichergestellt ist, dass er mit keinen durch Scripte anzulegenden Usernamen kollidiert?
Frage 3:
Wie verhält es sich, wenn ich mehrere unterschiedlichen Zwecken zugeordnete Mongo-DB-Server-Instanzen auf unterschiedlichen Usern laufen lassen wöllte? So wie es aussieht, ist das gar nicht vorgesehen. Vermutlich müsste ich dann virtualisieren, zb. mit Docker.
Gruß
weedy.
Namens-Konvention für user
Re: Namens-Konvention für user
Für UIDs gibt's das. Für namen meines wissens nicht. Zufällige Treffer dürften extrem selten sein. (Ich meines es gibt ca. 1.000.000.000 fünfstellige ASCII Zeichenketten. Wenn man sich nicht extra so anstellt, dass man usernamen nach einem Programm benennt, ist die Warhscheinlichkeit so groß wie in Peking jemanden zu treffen, den man kennt.)weedy hat geschrieben:Gibt es einen definierten Usernamen-Präfix, für den sichergestellt ist, dass er mit keinen durch Scripte anzulegenden Usernamen kollidiert?
Wenn es doch mal passiert wart der Installer ja, und man kann selbst Hand anlegen. Nimm einfach irgend ein zufälliges Präfix und du bist absolut sicher.
Kenne Mongo-DB nur aus den Sicherheitschlagzeilen mit Binary json, kaputten hashes und per default ohne passwort aus dem Internet erreichbar. Ich wette da gibt's irgend einen switch in dafür, unter welchem User das läuft. (Den Port musst du btw. auch noch abändern.) Aber so viel schlechtes, wie man über das ding gehört hat wäre ich mir da nicht sicher.weedy hat geschrieben:Wie verhält es sich, wenn ich mehrere unterschiedlichen Zwecken zugeordnete Mongo-DB-Server-Instanzen auf unterschiedlichen Usern laufen lassen wöllte?
rot: Moderator wanne spricht, default: User wanne spricht.
- weedy
- Beiträge: 585
- Registriert: 02.11.2002 21:47:49
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Namens-Konvention für user
5-Stellige mögliche Usernamen sindwanne hat geschrieben:Für UIDs gibt's das. Für namen meines wissens nicht. Zufällige Treffer dürften extrem selten sein. (Ich meines es gibt ca. 1.000.000.000 fünfstellige ASCII Zeichenketten. Wenn man sich nicht extra so anstellt, dass man usernamen nach einem Programm benennt, ist die Warhscheinlichkeit so groß wie in Peking jemanden zu treffen, den man kennt.)weedy hat geschrieben:Gibt es einen definierten Usernamen-Präfix, für den sichergestellt ist, dass er mit keinen durch Scripte anzulegenden Usernamen kollidiert?
Wenn es doch mal passiert wart der Installer ja, und man kann selbst Hand anlegen. Nimm einfach irgend ein zufälliges Präfix und du bist absolut sicher.
Kenne Mongo-DB nur aus den Sicherheitschlagzeilen mit Binary json, kaputten hashes und per default ohne passwort aus dem Internet erreichbar. Ich wette da gibt's irgend einen switch in dafür, unter welchem User das läuft. (Den Port musst du btw. auch noch abändern.) Aber so viel schlechtes, wie man über das ding gehört hat wäre ich mir da nicht sicher.weedy hat geschrieben:Wie verhält es sich, wenn ich mehrere unterschiedlichen Zwecken zugeordnete Mongo-DB-Server-Instanzen auf unterschiedlichen Usern laufen lassen wöllte?
> 26 * ( 26 + 10)**4
[1] 43670016
Stück, verfügbare Pakete sind
$ apt-cache search '.*' | wc -l
43490
Daraus folgt eine Kollisionswahrscheinlichkeit von 1:
> 43670016 / 43490
[1] 1004.139
So. Darüberhinaus gibt es keine Fehlermeldung, wie in dem
oben zitierten Script zu sehen war. Die Software funktioniert
dann eben nicht. Und gelinde gesagt ist das nicht so schön,
wenn man dann im Dunklen herumstochern muss, um den
Fehler zu finden.
Es ist nicht tragbar, dass hier auf gut Glück auf Nichtkollision
gehofft wird. Das ist ganz klar ein übler Designfehler.
Gruß
weedy.
Re: Namens-Konvention für user
Jaja, das sagt ihr alle so einfach, ihr mit eurem Mathe. Wenn ich aber im Zuge der Globalisierung meinen Usernamen in das englische Wort dafür ändern will, geht’s nicht – und das sind viel mehr Zeichen!!k Da kommt irgendsoein Fehler!
[scnr]
[scnr]
Re: Namens-Konvention für user
Du hast Großschreibung vergessen. Und - und _. Dann sind wir bei den 6Bit pro Zeichen, mit denen ich gerechnet habe. Kannst aber noch . oder so einbauen. Btw. Könnte das eine Idee sein für dich: Nimm einfach Großschreibung für deine User. Oder Zahlen am Anfang. Das dürfen Systemuser nicht.weedy hat geschrieben:26 * ( 26 + 10)**4
rot: Moderator wanne spricht, default: User wanne spricht.
- weedy
- Beiträge: 585
- Registriert: 02.11.2002 21:47:49
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Namens-Konvention für user
wanne hat geschrieben:Du hast Großschreibung vergessen. Und - und _. Dann sind wir bei den 6Bit pro Zeichen, mit denen ich gerechnet habe. Kannst aber noch . oder so einbauen. Btw. Könnte das eine Idee sein für dich: Nimm einfach Großschreibung für deine User. Oder Zahlen am Anfang. Das dürfen Systemuser nicht.weedy hat geschrieben:26 * ( 26 + 10)**4
Code: Alles auswählen
# LANG=C adduser TEST1
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable. Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
# grep NAME_REGEX /etc/adduser.conf
#NAME_REGEX="^[a-z][-a-z0-9_]*\$"
# echo "$(( 26*(26+10+2)**5 / 40000))"
51502
root@debian64:~# echo "$(( 26*(26+10+2)**6 / 40000))"
1957108
Aber sie steigt eben noch mehr an, wenn man versucht eine gewisse
Semantik reinzubringen. Wenn man nicht damit rechnet, dass
an das Kollisionsproblem einfach nicht gedacht worden ist
beim derzeitigen Entwurf von Debian, kann man auf die Idee kommen
bestimmte Nutzernamen einfach nach Programmen zu benennen.
Namen, wie mongodb, postgresql, nut, quake, ...
liegen dann sogar auf der Hand. Man wird nicht davor gewarnt
und wenn der User existiert und ein entsprechendes Paket
installiert wird, ist es schon zu spät.
Gruß
Re: Namens-Konvention für user
Was genau ist dann zu spät? Der Daemon läuft dann halt unter dem Account, der schon da war, sofern man’s nicht anders konfiguriert. Ist ja nicht so, dass die Maschine dann direkt explodieren würde ….Man wird nicht davor gewarnt
und wenn der User existiert und ein entsprechendes Paket
installiert wird, ist es schon zu spät.
Re: Namens-Konvention für user
Man muß User nicht mal absichtlich nach Programmen benennen. Programme werden oft mit kurzen, coolen, englischen Wörtern belegt, und User auch. Und die User sind bei Debian oft Programmierer, sodaß der Geschmack bei der Namenswahl relativ ähnlich sein dürfte.
Nur wie niemand schon sagt: Das System würde trotzdem funktionieren. Ok, der User hätte dann u.U. ein paar mehr Rechte als er soll. Gäbe es noch andere Effekte?
Nur wie niemand schon sagt: Das System würde trotzdem funktionieren. Ok, der User hätte dann u.U. ein paar mehr Rechte als er soll. Gäbe es noch andere Effekte?