Risposte:
Su OS X, il tuo gruppo principale è sempre a staff
meno che tu o il tuo gestore directory utenti non lo abbia modificato.
Che cos'è un gruppo primario ? Il gruppo principale di un utente è il proprietario predefinito di tutti i file creati da quell'utente.
Ai fini di chmod
sul tuo computer, puoi utilizzare il tuo ID utente numerico (ad es. 501) o il nome del tuo account (ad es danielbeck
.). Quest'ultimo è diverso dal nome utente che di solito vedi nell'interfaccia utente (ad esempio Daniel Beck ).
Puoi determinare il nome del tuo account utilizzando uno dei seguenti:
È il nome della tua home directory (a meno che tu non l'abbia personalizzata) nel titolo o nella barra laterale del Finder
Esegui whoami
in Terminal - quindi chown -R $(whoami):staff
dovrebbe essere sufficiente. Puoi anche ottenere il tuo gruppo principale con groups $(whoami) | cut -d' ' -f1
.
Apri Preferenze di Sistema »Utenti e gruppi , sblocca il riquadro, se necessario, fai clic con il pulsante destro del mouse sul tuo nome utente (la singola voce dell'elenco 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 principale.
Esegui id
nel terminale per un output più dettagliato. Ciò includerà il tuo ID utente numerico. Elencherà anche tutti i gruppi di cui sei membro, non solo il tuo gruppo principale. Il primo gruppo è quello principale.
staff
. Non sul mio lavoro Mac OS X comunque.
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 effettuato il downgrade di @callaginn, poiché ha sollevato un punto valido.
Sono validi i seguenti metodi (e probabilmente le migliori opzioni per gli script 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 più opzioni.
Per rispondere a questa domanda specifica se stavo scrivendo uno script che funzionasse in qualsiasi ambiente, non darei per scontato che il gruppo predefinito staff
sia in uso e invece farei quanto segue se stavo scrivendo uno script che potesse essere eseguito per qualsiasi utente (indipendentemente dal fatto che abbiano modificato il loro sistema):
chown "$(id -un):$(id -gn)" some_file
È sempre meglio essere indipendenti dalla piattaforma ogni volta che è possibile (se non si tratta di un compromesso troppo lungo), poiché in seguito si incorrerà in un minore debito tecnico.
Si noti che chown
la -R
bandiera deve essere utilizzata con la massima sicurezza. Potresti davvero rovinare il tuo sistema (anche se vale la pena notare che Apple lo ha reso difficile da quando hanno implementato System Integrity Protection
).
Considera, ad esempio, se dovessi chown -R 755 /var
invece che chown -R 755 /var/www
come root con System Integrity Protection
disabilitato, credo che ci vorresti. Non posso dirti cosa si spezzerebbe per primo, ma si romperà prima su un sistema Darwin, ma per favore prendi la mia parola che non sarebbe carino.
Speriamo che qualcuno lo trovi utile.
whoami
, puoi usareid
un oneliner compatibile con shell posix e csh.chown -R `id -u`:`id -g` FOLDER