Respuestas:
En OS X, su grupo principal siempre es a staff
menos que usted o su administrador de directorio de usuarios lo hayan cambiado.
¿Qué es un grupo primario ? El grupo principal de un usuario es, de forma predeterminada, el propietario de todos los archivos creados por ese usuario.
Para los fines de chmod
su computadora, puede usar su ID de usuario numérico (por ejemplo, 501) o su nombre de cuenta (por ejemplo danielbeck
). Este último es diferente del nombre de usuario que suele ver en la interfaz de usuario (por ejemplo, Daniel Beck ).
Puede determinar su nombre de cuenta utilizando cualquiera de los siguientes:
Es el nombre de su directorio de inicio (a menos que lo haya personalizado) en el título o la barra lateral de Finder
Ejecutar whoami
en la Terminal, por lo que chown -R $(whoami):staff
debería ser suficiente. También puede obtener su grupo principal con groups $(whoami) | cut -d' ' -f1
.
Abra Preferencias del sistema »Usuarios y grupos , desbloquee el panel si es necesario, haga clic con el botón derecho en su nombre de usuario (la entrada de la lista única en la sección Usuario actual ) y seleccione Opciones avanzadas… . Es el campo Nombre de la cuenta en la ventana de diálogo recién abierta. Este cuadro de diálogo también le muestra su grupo principal.
Ejecute id
en la Terminal para obtener una salida más detallada. Esto incluirá su ID de usuario numérico. También enumerará todos los grupos de los que eres miembro, no solo tu grupo principal. El primer grupo es el primario.
staff
. No en mi trabajo Mac OS X de todos modos.
Usa el id
comando desde la terminal. Mostrará su uid y los grupos a los que pertenece. Por ejemplo, aquí está mi salida que muestra mi identificación de usuario (534), identificación de grupo (20) y los grupos a los que pertenezco (también 20).
uid=534(galuga) gid=20(staff) groups=20(staff)
Esto mostrará su ID de usuario.
$ id -u
502
Esto mostrará los nombres de tu grupo. Los nombres de los grupos están entre paréntesis.
$ 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)
Solo comentaría si pudiera. No tengo suficiente karma en este sitio.
No tengo idea de por qué alguien rechazó a @callaginn, ya que saca un punto válido.
Los siguientes métodos son válidos (y probablemente las mejores opciones para los scripts de shell):
id -u # returns UID
id -un # returns username
id -g # returns primary (a.k.a. effictive) GID
id -gn # returns primary Group Name
Ver man id
para más opciones.
Para responder a esta pregunta específica si estaba escribiendo un script que funcionaría en cualquier entorno, no asumiría que el grupo predeterminado staff
está en uso y en su lugar haría lo siguiente si estuviera escribiendo un script que pudiera ejecutarse para cualquier usuario (si modificaron o no su sistema):
chown "$(id -un):$(id -gn)" some_file
Siempre es mejor ser independiente de la plataforma siempre que sea posible (si no es una compensación demasiado tiempo), ya que más adelante incurrirá en una menor deuda técnica.
Tenga en cuenta que chown
la -R
bandera debe usarse con la máxima confianza. Realmente podría estropear su sistema (aunque vale la pena señalar que Apple lo hizo difícil desde que lo implementaron System Integrity Protection
).
Considere, por ejemplo, si fuera en chown -R 755 /var
lugar de chown -R 755 /var/www
root con System Integrity Protection
deshabilitado, creo que estaría en ello. No puedo decirte qué se rompería primero, pero se rompería primero en un sistema Darwin, pero por favor toma mi palabra de que no sería bonito.
Con suerte, alguien encuentra esto útil.
whoami
, puede usarid
un oneliner que sea compatible con shells posix y csh.chown -R `id -u`:`id -g` FOLDER