Algumas coisas estão acontecendo aqui:
-
Quando você é
sudo git checkout ...
, todos esses arquivos são de propriedade do usuário root e do grupo raiz. Com as permissões padrão, é por isso que as alterações subsequentes nesses arquivos exigem que você seja root. -
/var/www/
por padrão é de propriedade dewww-data
group. Algo que seu usuário não é por padrão.
A maneira mais fácil de escrever em /var/www/
é apenas adicione seu usuário ao grupo de dados www . Você pode, é claro, mudar o diretório que pertence ao seu usuário, mas isso pode ter alguns efeitos colaterais desagradáveis se você não estiver antecipando-os.
Você precisará fazer login novamente depois de adicionar seu usuário ao grupo de dados www.
Em seu caso especificamente, você precisará corrigir sua atual bagunça de dados de propriedade da raiz. Você pode excluí-lo como root (e fazer o check-out novamente), mas se você tiver um trabalho não salvo, será mais simples colocar tudo de volta no seu usuário. O exemplo a seguir é extremamente preguiçoso e assume o que estamos falando é a única coisa em / var / www /:
sudo chown -R www-data: /var/www/