J'ai accidentellement changé le /var
propriétaire / groupe en mon nom d'utilisateur, puis je l'ai changé à nouveau en tant que root, mais tous les /var
propriétaires des dossiers ne sont pas root. Ou au moins les fichiers / dossiers créés par les packages?
permissions
chown
sepehr
la source
la source
chown
commande? et aurait été fermé.Réponses:
Semblable à l'une des réponses ci-dessus, si vous avez une copie du répertoire avec les autorisations correctes nommées «var» dans votre répertoire local, vous pouvez utiliser les deux commandes suivantes pour restaurer les autorisations dans le répertoire / var.
la source
La réponse la plus simple (et probablement la plus correcte) est "Vous ne pouvez pas", mais si vous voulez essayer, voici un script bash qui corrigera les autorisations des fichiers sous / var appartenant aux packages .deb.
REMARQUES:
Le script fonctionne en générant une liste des packages installés qui ont des fichiers en var, en téléchargeant ces packages, puis en les utilisant
dpkg-deb -c
pour savoir quelles devraient être les autorisations.La partie la plus difficile a été d'écrire la fonction pour convertir la chaîne d'autorisations (telle qu'affichée par
ls -l
outar v
) en mode numérique octal, y compris la restauration de setuid, setgid et des bits collants .... certaines choses qui seraient faciles à écrire avec un algorithme agréable dans, disons, perl pose trop de problèmes dans bash, il est donc plus facile de simplement le forcer brutalement.Enfin, le script est écrit pour être en mode "debug-mode" ou "dry-run". Pour qu'il change réellement le propriétaire / groupe / perms, mettez en commentaire ou supprimez les deux lignes avec les
__EOF__
marqueurs de document ici dessus.Le script pourrait, bien sûr, être assez facilement adapté pour corriger les perms de fichiers empaquetés dans n'importe quel autre répertoire, ou dans tous les répertoires.
Ce script aurait été beaucoup plus simple si les fichiers $ packagename.list en
/var/lib/dpkg/info
avaient le propriétaire, le groupe et les autorisations octales ainsi que le nom de fichier ... mais ils n'en ont pas.la source
dpkg -S /var
. De plus, après avoir appliqué ce script, il faut vérifierdpkg-statoverride --list '/var/*'
.dpkg -S
c'est lent (c'est pourquoi j'ai écritdlocate
). Bon pointdpkg-statoverride
cependant ... et le format de sortie est parfait.Vous pourriez.
Installez la même distribution sur une autre machine ou une machine virtuelle et utilisez le
chmod --refer
pour synchroniser les autorisations pour/var
la source
La réponse simple est "vous ne pouvez pas".
Mais .... si vous avez un système de fichiers comme JFS qui a un journal, vous pouvez le restaurer avec ses outils. Certains gestionnaires de packages vous permettent de réintégrer ses packages et peut-être de cette façon, vous pouvez récupérer le propriétaire de vos fichiers.
Une autre manière, mais plus lourde, est que vous pouvez monter le / var sur un autre périphérique et que les programmes recréeront le répertoire manquant.
la source