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

57

Der Versuch, diesen Compand im Terminal auszuführen:

sudo chown -R yourid:yourgroup local

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

Starkers
quelle

Antworten:

60

Unter OS X ist Ihre primäre Gruppe immer eine Gruppe, es staffsei denn, Sie oder Ihr Benutzerverzeichnis-Manager haben sie geändert.

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


Für die Zwecke chmodIhres Computers können Sie entweder Ihre numerische Benutzer-ID (z. B. 501) oder Ihren Kontonamen (z danielbeck. B. ) verwenden. Letzteres 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 Methoden ermitteln:

  • Dies ist der Name Ihres Home-Verzeichnisses (sofern Sie es nicht angepasst haben) in der Titel- oder Seitenleiste des Finders

  • whoamiIm Terminal laufen - so chown -R $(whoami):staffsollte ein ausreichen. Sie können auch Ihre primäre Gruppe mit erhalten groups $(whoami) | cut -d' ' -f1.

  • Öffnen Sie die Systemeinstellungen »Benutzer und Gruppen , entsperren Sie gegebenenfalls den Bereich, klicken Sie mit der rechten Maustaste auf Ihren Benutzernamen (den einzelnen Listeneintrag im Abschnitt Aktueller Benutzer ) und wählen Sie Erweiterte Optionen… aus . Es ist das Feld Kontoname im neu geöffneten Dialogfenster. Dieser Dialog zeigt Ihnen auch Ihre primäre Gruppe.

  • Führen Sie idin Terminal für eine ausführlichere Ausgabe. Dies beinhaltet Ihre numerische Benutzer-ID. Außerdem werden alle Gruppen aufgelistet, denen Sie angehören, nicht nur Ihre primäre Gruppe. Die erste Gruppe ist die primäre.

Daniel Beck
quelle
3
Stattdessen whoamikönnen Sie ideinen Oneliner verwenden, der mit posix shells und csh kompatibel ist. chown -R `id -u`:`id -g` FOLDER
fd0
Wenn Sie die LDAP-Authentifizierung verwenden, muss Ihr Benutzername nicht unbedingt sein staff. Auf meinem Mac OS X sowieso nicht.
Sridhar Sarnobat
1
@ Sridhar-Sarnobat Ich spreche dies in der zweiten Hälfte des ersten Satzes meiner Antwort an.
Daniel Beck
41

Verwenden Sie den idBefehl vom Terminal. Daraufhin werden Ihre Benutzerkennung und die Gruppen angezeigt, denen Sie angehören. Hier ist zum Beispiel meine Ausgabe, die meine Benutzer-ID (534), Gruppen-ID (20) und die Gruppen zeigt, denen ich angehöre (auch 20).

uid=534(galuga) gid=20(staff) groups=20(staff)
Galuga
quelle
15

Daraufhin wird Ihre Benutzer-ID angezeigt.

$ id -u
502

Daraufhin 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)
Gabriel Wu
quelle
4

Gehen Sie im Terminal zu ~/Documentsund rennen Sie ls -la. Ihr Benutzername und Ihre Gruppe werden neben den einzelnen Dateien / Verzeichnissen aufgelistet.

Es sollte so aussehen:

drwxr-xr-x  2 username usergroup  4096 Oct 17  2012 Templates
miah
quelle
super einfach und unkompliziert, danke für den tipp.
Teradyl
2

Würde mich nur äußern, wenn ich könnte. Ich habe nicht genug Karma auf dieser Seite.

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

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

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 idfür weitere Optionen.

Um diese spezielle Frage zu beantworten, wenn ich ein Skript geschrieben habe, das in jeder Umgebung funktioniert, würde ich nicht davon ausgehen, dass die Standardgruppe staffverwendet wird. Stattdessen würde ich Folgendes tun, wenn ich ein Skript schreibe, das für jeden Benutzer ausgeführt werden kann (ob sie ihr System geändert haben oder nicht):

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

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

Bitte beachten Sie, dass chown‚s -RFlag sollte mit größter Zuversicht verwendet werden. Sie könnten Ihr System wirklich durcheinander bringen (obwohl es erwähnenswert ist, dass Apple es schwierig gemacht hat, dies zu tun, seit es implementiert wurde System Integrity Protection).

Betrachten wir zum Beispiel, wenn Sie waren chown -R 755 /varstatt chown -R 755 /var/wwwmit als root System Integrity Protectiondeaktiviert Ich glaube , dass Sie es in wäre. Ich kann dir nicht sagen, was zuerst kaputt gehen würde, aber es würde auf einem Darwin-System zuerst kaputt gehen, aber bitte nimm mein Wort, dass es nicht schön wäre.

Hoffentlich findet das jemand hilfreich.

Robert J
quelle
1

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

id -gn
callaginn
quelle