Was changing ownership of everything to root the right thing to do?
Não . É, no entanto, a maneira mais rápida de pensar em colocar o sistema no estado normal.
- Existem muitos processos que exigem que alguns diretórios / arquivos sejam de propriedade de seus usuários. Exemplos incluem logs, caches, diretórios de trabalho / home de alguns processos como MySQL, LightDM, etc. Especialmente arquivos de log podem criar muitos problemas.
- Existem alguns aplicativos que são
setuid/setgide, portanto, precisam que seu proprietário / grupo seja algo específico. Exemplos incluem/usr/bin/at,/usr/bin/crontab, etc.
I think running chown caused some of the folder and file permissions to be changed. Is that normal?
Eu duvido que os modos foram alterados. Se sim, definitivamente não é normal.
Would this cause any security vulnerabilities?
Como você acabou de definir No geral, eu recomendo simplesmente reinstalar o sistema - ou talvez você tenha backups de disco completo. /usr/bin/crontab para pertencer a root , agora você tem um aplicativo setuid que abre um editor. Eu duvido que alguma vulnerabilidade se compare a isso. Claro, essa é uma vulnerabilidade flagrante, então algo mais insidioso pode aparecer agora.
Aparentemente, chown(3) deve limpar os bits setuid e setgid se o processo em execução não tenha os privilégios apropriados. E man 2 chown para Linux diz:
When the owner or group of an executable file are changed by an unprivileged user the
S_ISUIDandS_ISGIDmode bits are cleared. POSIX does not specify whether this also should happen when root does thechown(); the Linux behavior depends on the kernel version. In case of a non-group-executable file (i.e., one for which theS_IXGRPbit is not set) theS_ISGIDbit indicates mandatory locking, and is not cleared by achown().
Assim, parece que os devs e os comitês de padrões forneceram safegaurds.