Ich folge den Anweisungen, die von jemand anderem geschrieben wurden, um eine OS X-Box zu härten. Eine Anforderung besteht darin, sicherzustellen, dass bestimmte systemdefinierte Gruppen keine Benutzer enthalten. Für dieses Beispiel werde ich _ard verwenden, aber es gibt einige.
Die Gruppe _ard enthält standardmäßig einen Benutzer mit dem Namen _ard. Also dachte ich, ich würde dseditgroup verwenden, um diesen Benutzer aus der Gruppe zu entfernen:
dseditgroup -o edit -u myadminname -p -d _ard -t user _ard
Ich werde aufgefordert, mein Passwort einzugeben, und alles scheint gut zu funktionieren. Es wird keine Fehlermeldung zurückgegeben, aber Benutzer _ard befindet sich noch in Gruppe _ard.
dseditgroup -o checkmember -m _ard _ard
yes _ard is a member of _ard
Ich habe viele Permutationen ausprobiert, einschließlich der Verwendung von sudo
spezifizieren -n .
Geben Sie die vollständigen Pfade zu den lokalen Gruppen und Benutzern an.
Zur Überprüfung der Realität habe ich Kauderwelschnamen für die Gruppe und für den Benutzer eingegeben. In beiden Fällen bekam ich eine Fehlermeldung zurück. Das System erkennt also die Gruppe und den Benutzer, gibt keinen Fehler zurück, führt jedoch die Operation nicht aus.
Schließlich drehte ich mich zu dscl
zu versuchen, dasselbe zu erreichen, auch ohne Erfolg. Alle Permutationen, die ich basierend auf Suchanfragen in den Interwebs ausprobiert habe, einschließlich vieler Permutationen von
sudo dscl localhost -delete /Local/Default/Groups/thegroupname GroupMembership theusername
gab das gleiche Ergebnis - kein Fehler, kein Ergebnis.
Also - töte ich mich selbst, um schlecht geschriebene Anweisungen zu befolgen und es ist nicht möglich um diesen Benutzer aus dieser Gruppe zu entfernen, oder vermisse ich etwas anderes?
Jede Hilfe wird sehr geschätzt.
Bearbeiten zum Hinzufügen: Sollte erwähnt haben, dass die GUI es mir auch nicht erlaubt, die Benutzer zu entfernen.
quelle
sudo dscl . -read /Groups/_ard
Enthält keine Zeile, die mit 'GroupMembers:' (wie meine) beginnt. Ich bin ziemlich zuversichtlich, dass '_ard' nur benötigt wird, um die '_ard'-Gruppe zu erstellen.<dscl_cmd> DS Error: -14134 (eDSAttributeNotFound)
. Ich denke, Sie haben Recht, und die Anforderung ist nur schlecht geschrieben.Antworten:
Die _ard-Gruppe ist die primäre Gruppe für den _ard-Benutzer. In der GUI (zumindest unter 10.6) werden Sie möglicherweise feststellen, dass der _ard-Benutzer kursiv gedruckt ist (wenn Sie sich die Mitglieder der _ard-Gruppe ansehen).
Sie können keinen Benutzernamen ohne eine primäre Gruppe haben. Sie können jedoch die primäre Gruppe ändern, wenn Sie dies wirklich möchten. Verwenden Sie die GUI, um den Benutzer _ard auszuwählen und die primäre Gruppe auf etwas festzulegen, das für Sie leichter zugänglich ist.
Ich bin mir jedoch sicher, dass der Ersteller des Dokuments die besten Absichten hatte. Aber ich sehe nicht, wie hilfreich es ist, die _ard-Gruppe zu entvölkern. (Und das Gleiche gilt für viele der anderen lokalen _ * -Gruppen.)
quelle