J'ai abusé sudo
.
J'ai créé un répertoire temporaire à très courte durée de vie que je souhaitais partager entre quelques utilisateurs pendant quelques heures ... et j'ai nommé ce répertoire /some/path/tmp
Malheureusement, j'ai lancé sudo chown 777 -R /tmp
au lieu de sudo chown 777 -R tmp
, mon /tmp
dossier est maintenant complètement public.
J'utilise le commun /tmp
assez souvent (tous les jours, presque toutes les heures) personnellement pour des fichiers de courte durée, des scripts, beaucoup de scripts.
Est-ce un problème de sécurité maintenant qu'il est complètement ouvert au public? Devrais-je revenir à des paramètres plus sécurisés, ou à des paramètres par défaut communs pour une distribution Debian ou Ubuntu - (je ne sais pas qui ils étaient)? Quelles sont les autorisations correctes pour /tmp
?
la source
chown
ouchmod
?chmod
. chown (comme ch-own), concerne la propriété des fichiers, quel utilisateur est propriétaire d'un fichier. chmod (comme ch - modifify) concerne plus particulièrement ceux qui peuvent exécuter, écrire à l'intérieur ou lire le contenu d'un fichier.chown 777
ce paramètre pour définir la propriété d'un fichier sur l'utilisateur portant l'ID 777. Cependant, toutes les réponses, y compris celle acceptée, fonctionnent avecchmod
. Étant donné qu'ils ont tous défini l'autorisation sur la même valeur pour tous les utilisateurs (propriétaire, groupe, autres), la plupart des effets de la propriété du fichier deviennent inutiles. Cependant, la commande correcte à corriger le résultatsudo chown 777 -R /tmp
devrait êtresudo chown root -R /tmp
.Réponses:
Les paramètres normaux pour
/tmp
sont 1777, ce quils
indique quedrwxrwxrwt
. C'est-à-dire: grand ouvert, sauf que seul le propriétaire d'un fichier peut le supprimer (c'est ce que cet
bit supplémentaire signifie pour un répertoire).Le problème avec le
/tmp
mode 777 est qu'un autre utilisateur peut supprimer un fichier que vous avez créé et remplacer le contenu de son choix.Si vous êtes
/tmp
un système de fichiers tmpfs, un redémarrage restaurera tout. Sinon, courschmod 1777 /tmp
.En outre, de nombreux fichiers
/tmp
doivent être privés. Cependant, au moins un répertoire doit absolument être lisible par tout le monde:,/tmp/.X11-unix
et éventuellement d’autres répertoires similaires (/tmp/.XIM-unix
, etc.). La commande suivante devrait généralement régler le problème:C'est-à-dire rendre tous les fichiers et répertoires privés (supprimer toutes les autorisations du groupe et autres), mais rendre les sockets X11 accessibles à tous. Le contrôle d'accès sur ces sockets est imposé par le serveur et non par les autorisations de fichier. Il peut y avoir d'autres sockets qui doivent être accessibles au public. Courez
find /tmp -type s -user 0
pour découvrir les sockets appartenant à la racine que vous devrez peut-être rendre accessibles au monde entier. Il peut également y avoir des prises appartenant à d’autres utilisateurs du système (par exemple, pour communiquer avec un bus système); explorer avecfind /tmp -type s ! -user $UID
(où$UID
est votre identifiant utilisateur).la source
go-rwx
: aucune autorisation pour le groupe et les autres. Cela définit les autorisations surrwx------
(sauf que les fichiers créés depuischmod
peuvent éventuellement se retrouver avec moins d'autorisations, par exemplerw-------
). En d'autres termes, les fichiers ne seront accessibles que par leur propriétaire./tmp/.[!.]*
est d'inclure les fichiers de points, qui existent généralement dans/tmp
./tmp
et/var/tmp
aurait dû lire, écrire et exécuter des droits pour tous; mais vous ajouteriez généralement aussi sticky-bit (o+t
) pour empêcher les utilisateurs de supprimer des fichiers / répertoires appartenant à d'autres utilisateurs. Alorschmod a=rwx,o+t /tmp
devrait fonctionner.Pour ce qui est de changer les autorisations de manière récursive ... Tant que le propriétaire / groupe reste tel qu'il est pour les fichiers et les répertoires, cela ne devrait pas poser trop de problème. Mais vous pourriez peut-être changer la permission de tout ce qui est sous
/tmp
(pas / tmp lui-même) pour assurer la confidentialité des utilisateurs, en supprimant lesrx
droits des autres et peut-être du groupe.Trouver est un bon moyen de le faire. En tant que root, faites:
la source
/tmp/.X11-unix/*
monde lisible, sinon vous ne pourrez plus lancer d'applications X.chmod a=rwX,o+t /tmp -R
devrait faire lafind
magie.À partir d'une machine CentOS 5.9.
la source