Mudei acidentalmente /var
proprietário / grupo para o meu nome de usuário e depois mudei de volta para raiz, mas nem todos os /var
proprietários das pastas são raiz. Portanto, existe alguma maneira de voltar a mudar o proprietário / grupo de arquivos / pastas para o estado padrão? Ou pelo menos os arquivos / pastas criados por pacotes?
permissions
chown
sepehr
fonte
fonte
chown
comando? e teria sido fechado.Respostas:
Semelhante a uma das respostas acima, se você tiver uma cópia do diretório com as permissões corretas denominadas "var" no diretório local, poderá usar os dois comandos a seguir para restaurar as permissões no diretório / var.
fonte
A resposta mais simples (e provavelmente a mais correta) é "Você não pode", mas se quiser tentar, aqui está um script bash que corrigirá as permissões dos arquivos em / var pertencentes aos pacotes .deb.
NOTAS:
O script funciona gerando uma lista de pacotes instalados com arquivos em var,
dpkg-deb -c
fazendo o download desses pacotes e usando-os para descobrir quais devem ser as permissões.A parte mais difícil foi escrever a função para converter a sequência de permissões (como exibida por
ls -l
outar v
) em um modo numérico octal, incluindo restauração de bits setuid, setgid e sticky .... algumas coisas que seriam fáceis de escrever com um bom algoritmo em, digamos, perl são muitos problemas no bash, por isso é mais fácil forçá-lo com força bruta.Por fim, o script foi escrito para estar no modo "depuração" ou "execução a seco". Para que ele realmente altere o proprietário / grupo / permissões, comente ou exclua as duas linhas com os
__EOF__
marcadores de documento aqui.Obviamente, o script pode ser facilmente adaptado para corrigir permissões de arquivo compactado em qualquer outro diretório ou em todos os diretórios.
Esse script seria muito mais simples se os arquivos $ packagename.list
/var/lib/dpkg/info
continham permissões de proprietário, grupo e octal, bem como o nome do arquivo ... mas eles não têm.fonte
dpkg -S /var
. Além disso, após a aplicação desse script, é necessário verificardpkg-statoverride --list '/var/*'
.dpkg -S
é lento (e é por isso que escrevidlocate
). Bom pontodpkg-statoverride
, porém ... e o formato de saída é perfeito.Você poderia.
Instale a mesma distribuição em outra máquina ou VM e use o
chmod --refer
para sincronizar permissões para/var
fonte
A resposta simples é "você não pode".
Mas .... se você tiver um sistema de arquivos como o JFS que possua um log, poderá restaurá-lo com suas ferramentas. Alguns gerenciadores de pacotes permitem reintegrar seus pacotes e, talvez, dessa maneira, você possa recuperar o proprietário dos arquivos.
Outra maneira, porém mais complicada, é que você pode montar o / var em outro dispositivo e, em seguida, os programas recriarão o diretório ausente.
fonte