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?
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?
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.
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)
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)
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.