Cómo apropiadamente recursivamente archivos chown (incluyendo directorios ocultos)

8

Este enigma es causado por correr git pulldesde la raíz.

Hay varias razones para que lo haga ... Quiero que mi dispositivo actualice el código al arrancar, y rc.localse ejecuta desde la raíz.

Todo funciona en su mayoría bien ( npm installtiende a fallar cuando se ejecuta desde la raíz, pero ese es un tema completamente diferente), el problema surge cuando intento usar el repositorio git con un usuario no root después ... algunos de los archivos git tienen escrito por root, así que ahora no puedo usarlo más (permiso denegado).

Así que me gustaría chownvolver recursivamente , pero no parece haber nada que realmente funcione en todos los pequeños archivos git. Probé la -Rbandera y el ./**/*camino.

Supongo que ninguna de esas técnicas desciende en directorios de puntos.

Steven Lu
fuente
1
¿Qué caparazón estás usando? En bashlo que necesita conjunto shopt -s dotglobcon el fin de que coincida con los archivos ocultos por *o **.
jimmij
1
@jimmij es bueno saberlo, gracias (probablemente puedas decir eso como respuesta)
Steven Lu
¿Lo hiciste chown -R *, en lugar de chown -R .?
Peter Cordes

Respuestas:

16

El siguiente comando funciona para mí en Ubuntu. Cambió la propiedad de todos los archivos y directorios de forma recusiva

sudo chown -R someuser:somegroup YourDir
Valarpirai
fuente
Lo intenté sudo chown -R me:me .y cuando ls -altodos mis archivos todavía son propiedad de root. ¿Por qué esto no funciona?
Richard
@ Richard, ¿intentaste usar una ruta absoluta o ./?
vdegenne
0

Yo uso treeen su lugar:

 sudo tree -fai ~/.blabla  | xargs -L1 -I{} sudo chown youruser:youruser {}

También tenga cuidado de no ejecutar chown recurrente o chmod en el directorio '/' u otro directorio del sistema.

Eduard Florinescu
fuente