Namens-Konvention für user

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Namens-Konvention für user

Beitrag von weedy » 19.01.2016 11:10:55

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.

wanne
Moderator
Beiträge: 7616
Registriert: 24.05.2010 12:39:42

Re: Namens-Konvention für user

Beitrag von wanne » 19.01.2016 14:17:02

weedy hat geschrieben:Gibt es einen definierten Usernamen-Präfix, für den sichergestellt ist, dass er mit keinen durch Scripte anzulegenden Usernamen kollidiert?
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.)
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.
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?
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.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
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

Beitrag von weedy » 19.01.2016 15:01:01

wanne hat geschrieben:
weedy hat geschrieben:Gibt es einen definierten Usernamen-Präfix, für den sichergestellt ist, dass er mit keinen durch Scripte anzulegenden Usernamen kollidiert?
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.)
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.
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?
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.
5-Stellige mögliche Usernamen sind

> 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.

DeletedUserReAsG

Re: Namens-Konvention für user

Beitrag von DeletedUserReAsG » 19.01.2016 16:34:22

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]

wanne
Moderator
Beiträge: 7616
Registriert: 24.05.2010 12:39:42

Re: Namens-Konvention für user

Beitrag von wanne » 19.01.2016 17:43:29

weedy hat geschrieben:26 * ( 26 + 10)**4
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.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
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

Beitrag von weedy » 19.01.2016 18:49:30

wanne hat geschrieben:
weedy hat geschrieben:26 * ( 26 + 10)**4
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.

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

Ok, dann ist die Kollisionswahrscheinlichkeit zwischen 1:(51502 ... 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ß

DeletedUserReAsG

Re: Namens-Konvention für user

Beitrag von DeletedUserReAsG » 19.01.2016 19:30:14

Man wird nicht davor gewarnt
und wenn der User existiert und ein entsprechendes Paket
installiert wird, ist es schon zu spät.
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 ….

Ozelot
Beiträge: 1515
Registriert: 18.11.2007 09:52:58

Re: Namens-Konvention für user

Beitrag von Ozelot » 20.01.2016 15:59:29

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?

Antworten