Accidentellement exécuté «chown www-data: www-data / -R» en tant que root

26

Je viens de lancer ça il y a quelques secondes. J'ai réussi à le faire Ctrl- Cdès que j'ai réalisé ce que j'ai commencé à faire.

Jusqu'à présent, le seul répertoire qu'il a commencé à parcourir est /bin.

J'ai peur de faire autre chose. Jusqu'à présent, j'ai réalisé que je ne pouvais plus utiliser sumon utilisateur normal.

Heureusement, j'ai encore un autre terminal racine ouvert. Que fais-je?

Volonté
la source
26
On dirait que tu t'es noyé là-dedans, mon pote.
ta.speot.is
4
Vous comprenez maintenant l'importance des sauvegardes. Faites-le régulièrement.
Juliano
Au moins, il n'a pas chmod depuis la racine. C'est un désastre complet. Au moins rm -rf de root vous donne plus d'espace disque et vous prépare pour une réinstallation complète du système, chmod laisse juste un vrai gâchis qui est assez difficile à récupérer par autre chose qu'une réinstallation complète du système. L'herbe est brune des deux côtés de la clôture, hein?
Fiasco Labs

Réponses:

10

La plupart des éléments de / bin / devraient appartenir à root: root, donc si vous exécutez ce qui suit, vous pouvez corriger la propriété de ces fichiers:

chown root:root -R /bin/ 

Vous pouvez également vous assurer que le bit setuid est correctement défini sur / bin / su, que vous pouvez corriger comme suit:

chmod 4755 /bin/su
epic9x
la source
1
Sur Ubuntu, il est particulièrement important de faire de même avec sudo. Je ne pense pas qu'un mot de passe root soit même défini par défaut? Soit dit en passant, je recommanderais vraiment d'utiliser sudo au lieu des root shells. La demi-seconde qu'il faut pour taper sudo arrête normalement les erreurs comme ça dans les pistes. Le simple fait de travailler dans un shell racine est plus facile à manquer ...
Bernd Haug
4
paste.ubuntu.com/362468 est un "ls -l / bin" de mon bureau Ubuntu 9.10. Bien que je ne puisse pas avoir exactement les mêmes fichiers installés que vous, cela devrait au moins vous donner un bon indice sur les fichiers qui nécessitent des autorisations spéciales.
andol
@Bernd: Bien que je ne fasse pas beaucoup de travail d'administrateur, j'ai remarqué que je fais moins de bêtises que je le fais en tant que root. Je ne pourrai plus jamais utiliser un mot de passe root. (Et, non, il n'y a pas de mot de passe root par défaut sur Ubuntu, et je ne pense pas qu'il y en ait un sur MacOSX.)
David Thornley
@David: Il n'y a certainement pas de mot de passe root par défaut sous OS X, et en définir un est surtout une erreur, IMO. Il y a presque toujours un autre meilleur moyen. Le problème est que les Mac ne sont pas trop sûrs au départ; Je m'attends à voir beaucoup de «plaisir» une fois qu'ils auront une base d'installation plus grande pour rentabiliser les clients RK, Virii, Botnet et c.
Bernd Haug
36

Redhat utilisateur:

chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids

Utilisateur Debian / Ubuntu:

chown 0:0 /bin/*  /usr/bin/*
chown daemon:daemon /usr/bin/at
chown 0:utmp /usr/bin/screen
chmod 02755 /usr/bin/screen
chmod u+s /bin/fusermount /bin/mount /bin/su /bin/mount
chmod u+s /usr/bin/sudo /usr/bin/passwd
screen

Pendant que l'écran fonctionne, faites-le au moins deux fois:

dpkg --get-selections | awk '{ if ($2 == "install") print $1}' \
    | xargs apt-get install --reinstall --

Faites très attention à la sortie car si elle se plaint que quelque chose a les mauvaises autorisations, vous devez la corriger sur une autre fenêtre d'écran.

Cours intensif à l'écran:

Control+A     - command key
Control+A a   - emit a control+A
Control+A n   - next "screen"
Control+A c   - create "screen"

Utilisateur Solaris:

Tu es baisé.

pkgchk -R / -f -a

réinitialisera toutes les autorisations, mais setuid-ness sera toujours rompu. Utilisez une sauvegarde ou une autre machine Solaris pour rechercher des scripts et des fichiers setuid / setgid et les corriger manuellement.

LA CHOSE IMPORTANTE SUR LES SAUVEGARDES

Est-ce que vous pouvez les récupérer, pas que vous les prenez.

D'autres personnes vous ont conseillé de prendre des sauvegardes, mais je veux ajouter que vous devriez les tester. Si vous utilisez un système unixish, il n'y a aucune raison que vous ne puissiez pas vider périodiquement les fichiers sur une autre machine et vous assurer que tout fonctionne.

géocar
la source
Utilisateur FreeBSD: ne ferait jamais ce genre d'erreur;)
einstiien
10
@einstiien Oui, les utilisateurs de FreeBSD vont directement sur rm -rfscène.
grawity
@grawity: lol, bon.
einstiien
Pauvres utilisateurs de Solaris :(
Mircea Chirea
3

Sachez que les indicateurs set-uid de tous les binaires concernés peuvent également avoir été supprimés; c'est une caractéristique de sécurité de chown. Vérifiez avec un autre système quels binaires ont les drapeaux set-uid ou set-gid et assurez-vous de les définir également sur vos binaires.

Teddy
la source
3

J'allais expliquer les détails de l'utilisation de RPM pour réinitialiser les autorisations de fichiers, mais j'ai trouvé un site avec beaucoup plus d'informations . Il mentionne également qu'Ubuntu / Debian (donc .debs en général) ne le supporte pas.

Mais en général, l'option que vous recherchez serait le long des lignes:

rpm --setugids {packagename}
Coops
la source
C'est sur un système ubuntu, comme indiqué par les balises. Cela signifie que dpkg et .DEBs sont utilisés à la place de rpm et .RPMs
Kevin M
2

S'il s'agissait d'un système Debian, je pourrais tout réinstaller.

ptman
la source
0

avez-vous une sauvegarde qui fonctionne? si oui, restaurez votre dossier bin.

Sinon, regardez une autre boîte où vous avez installé la même version d'ubuntu et chownce que vous trouvez sur l'installation de travail.

Christian
la source
0

essayez ceci: trouvez toutes les données www dans le répertoire / bin

# find /bin -user www-data

puis modifiez www-data à l'utilisateur d'origine

# find /bin -user www-data -exec chown ORiginalUser {} \;

# then change www-data back to oringal group
# find /bin -group www-data -exec chgrp originaluser {} \;
squillman
la source
0

Merci à tous pour les excellentes réponses, tout semble être réglé maintenant.

/ bin / su a fonctionné une fois chmod'd à 4755 (je ne sais pas pourquoi chown a changé le bit suid)

je n'ai pas remarqué mais il a également commencé à travailler via le répertoire / home mais c'était une solution assez simple (il suffit de définir user: group sur l'utilisateur pour chaque répertoire)

Volonté
la source