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

Hoe vind ik mijn gebruikersnaam en groep in Mac OS X?

Ik probeer deze opdracht in terminal uit te voeren:

sudo chown -R yourid:yourgroup local

Ik heb echter geen idee wat mijn ID en mijn groep zijn, of waar ik ze kan vinden. Iemand een idee?

Antwoorden (6)

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

Op OS X is je primaire groep altijd staff tenzij jij of je gebruikersmapbeheerder dat veranderd hebben.

Wat is een primaire groep? De primaire groep van een gebruiker is standaard de eigenaar van alle bestanden die door die gebruiker gemaakt zijn.


Voor het gebruik van chmod op uw computer kunt u ofwel uw numerieke gebruikers-ID (b.v. 501), of uw accountnaam (b.v. danielbeck) gebruiken. Deze laatste is anders dan de gebruikersnaam die je gewoonlijk in de UI ziet (b.v. Daniel Beck).

Je kunt je accountnaam bepalen met een van de volgende mogelijkheden:

  • Het is de naam van je thuismap (tenzij je die hebt aangepast) in de titel- of zijbalk van Finder

  • Voer whoami uit in Terminal - dus een chown -R $(whoami):staff zou voldoende moeten zijn. Je kunt ook je primaire groep ophalen met groups $(whoami) | cut -d' ' -f1.

  • Open System Preferences “ Users & Groups, ontgrendel het deelvenster indien nodig, klik met de rechtermuisknop op je gebruikersnaam (de enige vermelding in de lijst in de sectie Current User), en selecteer Advanced Options…. Dit is het veld Account Name in het nieuw geopende dialoogvenster. Dit dialoogvenster toont u ook uw primaire groep.

  • Voer id in Terminal uit voor een meer uitgebreide uitvoer. Dit zal je numerieke gebruikers ID bevatten. Het toont ook alle groepen waar je lid van bent, niet alleen je primaire groep. De eerste groep is de primaire groep.

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

Gebruik het id commando vanaf de terminal. Het zal uw uid weergeven en de groepen waartoe u behoort. Hier is bijvoorbeeld mijn uitvoer met mijn gebruikers-id (534), groeps-id (20) en de groepen waartoe ik behoor (ook 20).

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

Dit laat je gebruikersnaam zien.

$ id -u
502

Dit toont je groepsnamen. De groepsnamen staan tussen haakjes.

$ 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, ga naar ~/Documents en voer ls -la uit. Je gebruikersnaam en groep worden vermeld naast elk van de bestanden/directories.

Het zou er zo uit moeten zien:

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

Ik zou alleen commentaar geven als ik kon. Ik heb niet genoeg karma op deze site.

Ik heb geen idee waarom iemand @callaginn heeft gedownvoted, want hij brengt een geldig punt naar voren.

De volgende methodes zijn geldig (en waarschijnlijk de beste opties voor shell scripting):

id -u # returns UID

id -un # returns username

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

id -gn # returns primary Group Name

Zie man id voor meer opties.

Om deze specifieke vraag te beantwoorden: als ik een script zou schrijven dat in iedere omgeving zou werken, zou ik niet aannemen dat de standaard groep staff in gebruik is en in plaats daarvan zou ik het volgende doen als ik een script zou schrijven dat voor iedere gebruiker gedraaid kan worden (ongeacht of ze hun systeem aangepast hebben of niet):

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

Het is altijd beter om platform agnostisch te zijn waar mogelijk (als het niet teveel tijd kost), omdat je dan later minder technische schuld oploopt.

Merk op dat chown‘s -R vlag met het grootste vertrouwen gebruikt moet worden. Je zou je systeem echt kunnen verknoeien (Hoewel het de moeite waard is om op te merken dat Apple het moeilijk heeft gemaakt om dat te doen sinds ze System Integrity Protection hebben geïmplementeerd).

Overweeg, bijvoorbeeld, als je als root chown -R 755 /var zou gebruiken in plaats van chown -R 755 /var/www met System Integrity Protection uitgeschakeld, denk ik dat je er voor zou staan. Ik kan je niet zeggen wat het eerste zou breken, maar het zou het eerste breken op een Darwin systeem, maar geloof me alsjeblieft op mijn woord dat het niet mooi zou zijn.

Hopelijk vindt iemand dit nuttig.

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

Een nog kortere methode om de primaire groep te vinden:

id -gn