2013-05-02 16:34:01 +0000 2013-05-02 16:34:01 +0000
62
62

Wie finde ich meine Benutzer-ID und Gruppe in Mac OS X?

Ich versuche, dieses Kommando im Terminal auszuführen:

sudo chown -R yourid:yourgroup local

Ich habe jedoch keine Ahnung, was meine ID und meine Gruppe sind, oder wo ich sie finden kann. Irgendwelche Ideen?

答案 (6)

65
65
65
2013-05-02 16:49:08 +0000

Unter OS X ist Ihre primäre Gruppe immer staff, es sei denn, Sie oder Ihr Benutzerverzeichnismanager haben sie geändert.

Was ist eine primäre Gruppe? Die primäre Gruppe eines Benutzers ist standardmäßig der Eigentümer aller Dateien, die von diesem Benutzer erstellt werden.


Für die Zwecke von chmod auf Ihrem Computer können Sie entweder Ihre numerische Benutzer-ID (z. B. 501) oder Ihren Kontonamen (z. B. danielbeck) verwenden. Letzterer unterscheidet sich von dem Benutzernamen, den Sie normalerweise in der Benutzeroberfläche sehen (z. B. Daniel Beck).

Sie können Ihren Kontonamen mit einer der folgenden Möglichkeiten ermitteln:

  • Es ist der Name Ihres Heimatverzeichnisses (es sei denn, Sie haben ihn angepasst) in der Titel- oder Seitenleiste des Finders

  • Führen Sie whoami im Terminal aus - ein chown -R $(whoami):staff sollte also genügen. Sie können auch Ihre primäre Gruppe mit groups $(whoami) | cut -d' ' -f1 erhalten.

  • Öffnen Sie Systemeinstellungen “ Benutzer & Gruppen, entsperren Sie das Fenster, falls nötig, klicken Sie mit der rechten Maustaste auf Ihren Benutzernamen (der einzelne Listeneintrag im Abschnitt Aktueller Benutzer) und wählen Sie Erweiterte Optionen…. Es ist das Feld Account Name im neu geöffneten Dialogfenster. Dieser Dialog zeigt Ihnen auch Ihre primäre Gruppe an.

  • Führen Sie id im Terminal aus, um eine ausführliche Ausgabe zu erhalten. Dies beinhaltet Ihre numerische Benutzer-ID. Es werden auch alle Gruppen aufgelistet, in denen Sie Mitglied sind, nicht nur Ihre primäre Gruppe. Die erste Gruppe ist die primäre Gruppe.

42
42
42
2013-11-27 01:56:17 +0000

Verwenden Sie den Befehl id im Terminal. Es zeigt Ihre uid und die Gruppen an, zu denen Sie gehören. Hier ist zum Beispiel meine Ausgabe, die meine Benutzer-ID (534), die Gruppen-ID (20) und die Gruppen, denen ich angehöre (ebenfalls 20), anzeigt.

uid=534(galuga) gid=20(staff) groups=20(staff)
16
16
16
2016-08-03 09:47:16 +0000

Hier wird Ihre Benutzerkennung angezeigt.

$ id -u
502

Hier werden Ihre Gruppennamen angezeigt. Die Gruppennamen stehen in Klammern.

$ id
uid=502(whoami) gid=20(staff) groups=20(staff),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
4
4
4
2013-05-02 16:42:49 +0000

in Terminal, gehen Sie zu ~/Documents und führen Sie ls -la aus. Ihr Benutzername und Ihre Gruppe werden neben jeder der Dateien/Verzeichnisse aufgeführt.

Es sollte wie folgt aussehen:

drwxr-xr-x 2 username usergroup 4096 Oct 17 2012 Templates
4
4
4
2019-05-14 03:44:29 +0000

Würde nur kommentieren, wenn ich könnte. Ich habe nicht genug Karma auf dieser Seite.

Ich habe keine Ahnung, warum jemand @callaginn heruntergestuft hat, da er einen gültigen Punkt anspricht.

Die folgenden Methoden sind gültig (und wahrscheinlich die besten Optionen für Shell-Skripting):

id -u # returns UID

id -un # returns username

id -g # returns primary (a.k.a. effictive) GID

id -gn # returns primary Group Name

Siehe man id für weitere Optionen.

Um diese spezielle Frage zu beantworten, wenn ich ein Skript schreiben würde, das in jeder Umgebung funktioniert, würde ich nicht davon ausgehen, dass die Standardgruppe staff verwendet wird, und stattdessen würde ich Folgendes tun, wenn ich ein Skript schreibe, das für jeden Benutzer ausgeführt werden kann (unabhängig davon, ob er sein System modifiziert hat oder nicht):

chown "$(id -un):$(id -gn)" some_file

Es ist immer besser, wenn möglich plattformunabhängig zu sein (wenn es nicht zu viel Zeit kostet), da Sie später weniger technische Schulden haben.

Bitte beachten Sie, dass das chown-Flag von -R nur mit größter Vorsicht verwendet werden sollte. Sie könnten Ihr System wirklich durcheinander bringen (Obwohl es erwähnenswert ist, dass Apple es schwer gemacht hat, seit sie System Integrity Protection implementiert haben). Betrachten Sie zum Beispiel

, wenn Sie chown -R 755 /var statt chown -R 755 /var/www als Root mit deaktiviertem System Integrity Protection verwenden würden, dann glaube ich, dass es Sie erwischen würde. Ich kann Ihnen nicht sagen, was zuerst kaputt gehen würde, aber es würde zuerst auf einem Darwin-System kaputt gehen, aber bitte nehmen Sie mein Wort, dass es nicht schön wäre.

Hoffentlich findet das jemand hilfreich.

2
2
2
2019-05-06 15:55:00 +0000

Eine noch kürzere Methode zum Finden der Primärgruppe:

id -gn