J'ai récemment installé le serveur Ubuntu sur mon serveur pour essayer le linux en tant que nouvel utilisateur. J'ai suivi un tutoriel sur la façon de configurer le serveur Web qui a dit que j'avais besoin chmod 777
du répertoire du serveur Web pour qu'il puisse être écrit.
Quoi qu'il en soit, j'ai créé un nouveau compte pour un mec pour lui permettre de voir certains fichiers sur le serveur que j'ai placé dans son répertoire personnel:
adduser francis
Après avoir créé le compte, j'ai vérifié quel accès il a avec
groups francis
Il disait "francis: francis", donc ce n'était pas un problème, je pense, l'ubuntu ne l'a inclus dans aucun groupe par défaut, ce qui est logique, il l'a créé sans autorisation supplémentaire sur le plan de la sécurité, donc tout va bien et dandy. Une semaine plus tard, dans une horreur absolue et totale, j'ai découvert que même s'il ne pouvait pas faire des choses comme SUDO ou jouer dans les répertoires système, il avait un accès complet à presque tout le reste sur le serveur. Par exemple, il avait un accès complet en lecture / écriture à mes fichiers de serveur Web dans / var / www (et donc les mots de passe stockés dans les fichiers de configuration php, etc.) même si ce répertoire n'est PAS dans son répertoire personnel et je ne l'ai jamais ajouté à aucun groupe qui pourrait accéder à ce répertoire, ni lui ai accordé un accès spécial à quoi que ce soit après avoir fait l'adduser.
Quoi qu'il en soit, que se passe-t-il ici? Comment puis-je tuer son accès à quelque chose d'important? Il ne devrait pas pouvoir accéder à des choses comme / media ou / var / www. Je pensais que les nouveaux utilisateurs étaient par défaut empêchés de faire quoi que ce soit de dangereux ou d'espionner là où ils ne devraient pas être.
Donc, pour résumer, je n'ai qu'à lui permettre d'accéder aux répertoires que je spécifie manuellement + aux répertoires dont il a besoin pour fonctionner correctement (son répertoire personnel, vim, nano, etc.)
Merci
la source
chmod
ailleurs, vous pourriez avoir d'autres problèmes.Réponses:
C'est comme prévu. Et pire. chmod 777 signifie ... "J'aimerais que le propriétaire, quiconque dans son groupe et quiconque ait des autorisations de lecture, d'écriture et d'exécution"
Ce qui est assez terrible.
Et pour un serveur Web, 777 n'est pas optimal. 755 (le propriétaire dispose d'un groupe d'autorisations complet et d'autres ont lu + exécuté) est un défaut courant, mais d' après ce que vous avez dit, vous voulez au moins lire-écrire ou exécuter en lecture-écriture pour le propriétaire (l'utilisateur du serveur Web), et peut-être le groupe et aucune autorisation pour l'utilisateur. Il y a des questions plus complètes sur les niveaux d'autorisations appropriés en cas de défaillance du serveur, mais considérez quelque chose comme 640 ou 740.
Cela dit, vous pouvez également placer l'utilisateur dans son propre petit monde - en configurant chroot pour garder l'utilisateur dans son propre espace dans le système. Il y a des guides qui flottent pour faire cela - par exemple l'excellente réponse d'oli ici qui peut être une option en fonction de vos besoins.
la source
Essentiellement, il se décompose comme ceci:
Ainsi, les autorisations de lecture seulement seraient 4, la lecture et l'écriture seraient 6, la lecture et l'exécution seraient 5, et tout (lecture, écriture, exécution) est 7. C'est ainsi que vous calculez une valeur d'octet d'autorisation pour un propriétaire, un groupe de propriétaires ou tout le monde.
Lorsque vous appliquez ces autorisations
chmod
à un emplacement de fichier ou de répertoire, les nombres calculés ci-dessus sont appliqués comme ceci, avec un octet chacun pour le propriétaire, le groupe et tout le monde:Donc, si je voulais me donner, ainsi qu'à mon groupe, des autorisations de lecture, d'écriture et d'exécution sur un dossier que je possédais, mais je ne voulais même pas que tout le monde puisse le lire, j'utiliserais:
Pour plus d'informations, consultez la page de manuel de chmod :
la source
chmod ugo+rwx <...>
. Les personnages représentent u ser, g roup ou autre; r ead, w rite, e x ecute. Vous pouvez utiliser '-' pour supprimer (par exemple:)chmod go-wx <...>
. Notez simplement que cela n'ajoute ou supprime que ce que vous tapez.chmod ugo+rwx <file>; chmod u+rwx <file>
ne supprime pas l' accès au groupe / autre.chmod 777
s'est passé, c'est donc là que j'ai dirigé mon explication.Comme d'autres l'ont mentionné, vous ne devriez pas avoir d'autorisations définies sur 777
Voici une feuille de référence utile que j'utilise.
la source
Pour partager des fichiers avec une personne à laquelle vous vous êtes connecté, vous n'avez rien à faire en particulier. Sur une installation Debian par défaut, les utilisateurs ont accès aux répertoires personnels de chacun.
Par exemple,
Les autorisations sur mon répertoire personnel sont lues (r) et accessibles (x) pour tout utilisateur de mon système. Seulement, j'ai en plus un accès en écriture (w) .
En outre, la valeur par défaut
umask
sur Ubuntu est telle que les fichiers et répertoires que les utilisateurs créent sont lisibles par défaut par le monde . Vous pouvez régler laumask
à077
si vous ne voulez pas.Cela signifie que dans une configuration par défaut, si l'utilisateur
you
souhaite partager un document~/README.txt
avec moi, il n'y a rienyou
à faire. Je peux simplement le voir:Je ne peux pas modifier ou supprimer le fichier, mais je peux le copier vers un emplacement où j'ai l'autorisation d'écriture. Ensuite, je possède la copie:
Il y a de bonnes raisons pour lesquelles la plupart du système est lisible dans le monde par défaut, comme je l'ai expliqué dans une autre réponse sur AskUbuntu . Cependant, sur un système partagé, il peut être judicieux de rendre les répertoires personnels inaccessibles aux non-propriétaires:
... car de nombreux utilisateurs ne sont apparemment pas au courant de la valeur par défaut - QED ;-). Il serait cependant plus sage de faire comprendre aux utilisateurs que les autorisations de fichiers ne protègent pas les secrets.
la source
Dans Ubuntu, tout utilisateur a des privilèges de superutilisateur qui sont ajoutés dans le groupe 'sudo', veuillez le vérifier pour vous assurer qu'aucun autre utilisateur n'est ajouté dans ce groupe.
Pour sécuriser vos fichiers et votre répertoire des autres utilisateurs, vous pouvez définir l'autorisation comme suggéré par M. Journeyman Geek dans la réponse ci-dessus.
Vous pouvez également utiliser des autorisations spéciales pour sécuriser vos fichiers et répertoires des autres.
la source