Was sind die zulässigen Gruppennamen für groupadd?
11
Ich habe diese Anweisungen befolgt , um Shadow zu erstellen, das den groupaddBefehl bereitstellt . Ich erhalte jetzt eine Fehlermeldung, wenn ich Folgendes versuche:
$ groupadd automake1.10
groupadd: 'automake1.10' is not a valid group name
Ich habe alphanumerische Namen überprüft und sie funktionieren einwandfrei.
Siehe insbesondere den Quellcode libmisc/chkname.c. Shadow ist ziemlich konservativ: Namen müssen mit dem regulären Ausdruck übereinstimmen [_a-z][-0-9_a-z]*\$?und dürfen höchstens GROUP_NAME_MAX_LENGTHZeichen lang sein (Konfigurationsoption, Standard 16; Benutzernamen können normalerweise bis zu 32 Zeichen lang sein, abhängig von der Bestimmung der Kompilierungszeit).
Debian entspannt den Scheck sehr. Ab Squeeze ist alles andere als Leerzeichen und :erlaubt. Siehe Fehler # 264879 und Fehler # 377844 .
Für POSIX müssen Buchstaben in beiden Fällen, Ziffern und ._-( wie in Dateinamen) zulässig sein . POSIX legt keine Einschränkungen fest, wenn Sie sich nicht für die Portabilität interessieren. Eine Reihe von empfohlenen Einschränkungen ergeben sich aus der Verwendung:
Doppelpunkte, Zeilenumbrüche und Nullen sind richtig; Sie können sie einfach nicht in /etc/passwdoder verwenden /etc/group.
Ein Name, der nur aus Ziffern besteht, ist eine schlechte Idee - chownund chgrpsoll eine Ziffernfolge als Namen behandeln, wenn er sich in der Benutzer- / Gruppendatenbank befindet. Andere Anwendungen können jedoch jede Zahl als numerische ID behandeln.
Eine Initiale -oder ein .in einem Benutzernamen wird dringend empfohlen, da viele Anwendungen erwarten, dass sie $user.$groupan ein externes Dienstprogramm (z chown $user.$group /path/to/file. B. ) übergeben werden können ¹. Ein .Name in einer Gruppe sollte weniger Probleme verursachen, aber ich würde trotzdem empfehlen, dagegen zu sein.
/ Dies kann ebenfalls zu Problemen führen, da einige Programme erwarten, dass Benutzernamen in Dateinamen verwendet werden können.
Jeder Charakter, den die Shell erweitern würde, ist wahrscheinlich riskant.
Nicht-ASCII-Zeichen sollten in Ordnung sein, wenn Sie sich nicht für die Freigabe mit Systemen interessieren, die möglicherweise unterschiedliche Codierungen verwenden.
¹ Alle modernen Implementierungen erwarten chown $user:$group, unterstützen jedoch die chown $user.$groupAbwärtskompatibilität, und es gibt zu viele Anwendungen, die einen Punkt übergeben, um diese Kompatibilitätsunterstützung zu entfernen.
Betreff chown: Die aktuelle Syntax, zumindest in GNU-Coreutils, lautet user:group: Punkt wird nur aus Kompatibilitätsgründen akzeptiert. Man kann verwenden j.smith:j.smith.
user1686
1
@grawity: Es sind nicht nur GNU-Coreutils, sondern das Problem liegt nicht an sich chownselbst, sondern an vorhandenen Skripten und anderen Programmen, die chown $user.$groupstattdessen aufgerufen werden chown $user:$group- selbst wenn die chownImplementierung versucht, das Richtige zu tun, sind einige Fälle an sich nicht eindeutig.
Gilles 'SO - hör auf böse zu sein'
1
Wenn Sie sich abenteuerlustig fühlen, können Sie /etc/groupdirekt bearbeiten und einen beliebigen Gruppennamen eingeben. Dies hat auch den zusätzlichen Vorteil, dass Sie bei einem der genannten Probleme @Gilles möglicherweise keinen Editor laden können, um das Problem zu beheben, oder sich überhaupt nicht anmelden können - was Ihnen wertvolle Erfahrungen bei der Wiederherstellung eines defekten Systems gibt!
chown
: Die aktuelle Syntax, zumindest in GNU-Coreutils, lautetuser:group
: Punkt wird nur aus Kompatibilitätsgründen akzeptiert. Man kann verwendenj.smith:j.smith
.chown
selbst, sondern an vorhandenen Skripten und anderen Programmen, diechown $user.$group
stattdessen aufgerufen werdenchown $user:$group
- selbst wenn diechown
Implementierung versucht, das Richtige zu tun, sind einige Fälle an sich nicht eindeutig.Wenn Sie sich abenteuerlustig fühlen, können Sie
/etc/group
direkt bearbeiten und einen beliebigen Gruppennamen eingeben. Dies hat auch den zusätzlichen Vorteil, dass Sie bei einem der genannten Probleme @Gilles möglicherweise keinen Editor laden können, um das Problem zu beheben, oder sich überhaupt nicht anmelden können - was Ihnen wertvolle Erfahrungen bei der Wiederherstellung eines defekten Systems gibt!quelle
/etc/gshadow
beim Hinzufügen von Gruppen zu bearbeiten . Verwenden Sievigr(8)
die Dateien auch, anstatt sie direkt zu bearbeiten.