Você deve ser capaz de restaurar permissões de um shell de root, se você conseguir iniciar um. Você deve ser capaz de obter um shell de root efetuando login como root no console. Neste ponto, dependendo da sua configuração, você pode ou não ser capaz de obter acesso root de uma conta comum com su
ou sudo
, e você provavelmente não conseguirá fazer login em nenhuma conta não-root .
Se a transcrição que você postou estiver completa, você teve a sorte de não ser afetados os arquivos cujas permissões são mais difíceis de restaurar ( /etc
e /var
).
Apr 11 21:34:08 *** sftp-server[20582]: set "/.newrelic" mode 40754
Apr 11 21:34:08 *** sftp-server[20582]: set "/bin" mode 40554
Apr 11 21:34:09 *** sftp-server[20582]: set "/boot" mode 40554
Apr 11 21:34:09 *** sftp-server[20582]: set "/cgroup" mode 40754
Apr 11 21:34:09 *** sftp-server[20582]: set "/dev" mode 40754
40754 (notação octal) significa um diretório, gravável pelo proprietário, executável pelo proprietário e grupo, e legível por todos. Somente os três dígitos mais à direita indicam as permissões, os dígitos anteriores codificam o tipo de arquivo e não podem ser alterados. Como a permissão “executar” em um diretório, na verdade, significa a permissão para acessar arquivos nesse diretório, os arquivos nesses diretórios não podem mais ser acessados pela maioria dos usuários. A maioria dos diretórios de nível superior deve ter a permissão 755, o que significa legível e executável por todos e gravável apenas pelo proprietário (as exceções são /lost+found
, que normalmente é 700, /tmp
, que deve ser 1777 e sistemas de arquivos especiais como /proc
ou /sys
pode não ser gravável pelo seu proprietário). Eu não sei o que é /.newrelic
, não é um diretório padrão de nível superior.
chmod 755 /bin /boot /cgroup /dev
Apr 11 21:34:10 *** sftp-server[20582]: set "/bin/mknod" mode 100754
…
A maioria dos arquivos em /bin
e /sbin
deve ser legível e executável por todos, e gravável apenas pelo seu proprietário. Alguns deles precisam ser setuid .
chmod a+x /bin/* /sbin/*
chmod 4755 /bin/su /bin/sudo /bin/mount /bin/umount /bin/ping /bin/ping6
chmod 4754 /bin/fusermount
Em /boot
, acho que todos os arquivos e diretórios devem ser legíveis e os diretórios devem ser executáveis, mas os arquivos não devem.
find /boot -type d -exec chmod 755 {} + -type f -exec chmod 644 {} +
Isso deixa /dev
, onde as permissões variam muito de arquivo para arquivo. Felizmente, /dev
é um sistema de arquivos na memória, portanto, o conteúdo ficará bem após a reinicialização. Se você puder e quiser restaurar as permissões em /dev
sem reinicializar, acho que o seguinte comando fará isso:
udevadm trigger --sysname-match='*'