Come trovo il mio ID utente e il mio gruppo in Mac OS X?
Cerco di eseguire questo comando in un terminale:
sudo chown -R yourid:yourgroup local
Tuttavia, non ho idea di quale sia il mio ID e il mio gruppo, o dove trovarli. Qualche idea?
Cerco di eseguire questo comando in un terminale:
sudo chown -R yourid:yourgroup local
Tuttavia, non ho idea di quale sia il mio ID e il mio gruppo, o dove trovarli. Qualche idea?
Su OS X, il tuo gruppo primario è sempre staff
a meno che tu o il tuo gestore di directory utente non l'abbiate cambiato.
Cos'è un gruppo primario? Il gruppo primario di un utente è per default il proprietario di tutti i file creati da quell'utente.
Per gli scopi di chmod
sul tuo computer, puoi usare o il tuo ID utente numerico (ad esempio 501), o il nome del tuo account (ad esempio danielbeck
). Quest'ultimo è diverso dal nome utente che di solito vedi nell'UI (per esempio Daniel Beck).
Puoi determinare il nome del tuo account usando uno dei seguenti metodi:
È il nome della tua home directory (a meno che tu non l'abbia personalizzata) nel titolo del Finder o nella barra laterale
Esegui whoami
nel Terminale - quindi un chown -R $(whoami):staff
dovrebbe bastare. Puoi anche ottenere il tuo gruppo primario con groups $(whoami) | cut -d' ' -f1
.
Apri Preferenze di sistema “ Utenti e gruppi, sblocca il pannello se necessario, clicca col destro sul tuo nome utente (la singola voce della lista nella sezione Utente corrente), e seleziona Opzioni avanzate…. È il campo Nome account nella finestra di dialogo appena aperta. Questa finestra di dialogo mostra anche il tuo gruppo primario.
Esegui id
nel terminale per un output più prolisso. Questo includerà il tuo ID utente numerico. Elencherà anche tutti i gruppi di cui sei membro, non solo il tuo gruppo primario. Il primo gruppo è quello primario.
Questo mostrerà il tuo userid.
$ id -u
502
Questo mostrerà i nomi dei tuoi gruppi. I nomi dei gruppi sono tra parentesi.
$ 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)
Commenterei solo se potessi. Non ho abbastanza karma su questo sito.
Non ho idea del perché qualcuno abbia declassato @callaginn, dato che ha sollevato un punto valido.
I seguenti metodi sono validi (e probabilmente le migliori opzioni per lo scripting di shell):
id -u # returns UID
id -un # returns username
id -g # returns primary (a.k.a. effictive) GID
id -gn # returns primary Group Name
Vedi man id
per altre opzioni.
Per rispondere a questa domanda specifica, se stessi scrivendo uno script che funzionasse in qualsiasi ambiente, non assumerei che il gruppo di default staff
sia in uso e invece farei quanto segue se stessi scrivendo uno script che potrebbe essere eseguito per qualsiasi utente (che abbia o meno modificato il suo sistema):
chown "$(id -un):$(id -gn)" some_file
È sempre meglio essere agnostici alla piattaforma quando possibile (se non è troppo un compromesso in termini di tempo), in quanto si incorre in meno debiti tecnici in seguito.
Notate che il flag chown
dovrebbe essere usato con la massima fiducia. Potreste davvero incasinare il vostro sistema (Anche se vale la pena notare che Apple ha reso la cosa difficile da fare da quando hanno implementato -R
).
Considerate, per esempio, se doveste fare System Integrity Protection
invece di chown -R 755 /var
come root con chown -R 755 /var/www
disabilitato credo che sareste nei guai. Non posso dirvi cosa si romperebbe prima, ma si romperebbe prima su un sistema Darwin, ma per favore prendete la mia parola che non sarebbe bello.
Speriamo che qualcuno lo trovi utile.