2 votes

Possibilité d'outrepasser l'autorisation Root d'un fichier en lecture seule avec un utilisateur non-sudo

Je faisais des expériences en Docker et a constaté un comportement étrange.

J'ai pu remplacer la propriété d'un fichier créé avec la commande Root à l'intérieur du Docker avec un autre utilisateur n'ayant pas les permissions Root.

Voici les étapes à suivre pour le reproduire :

$> docker run -dit ubuntu:16.04 bash
$> docker exec -it cont_id bash
$> apt update && apt install -y vim
$> useradd cp -m
$> vim /home/cp/hello.txt
  #  Write some text and save it

$> su cp 
$> cd ~/ && ls -latr;
  #  Will list hello.txt with user and group as root

$> vim hello.txt
  #  Write some text and try saving it normally which will fail.
  #  Try saving it with `:wq!`

Voilà, le fichier est enregistré et l'utilisateur et le groupe auxquels il appartient sont également remplacés par le nouvel utilisateur.

J'ai effectué un enregistrement terminal pour cela et la même chose est affichée. ici .

2voto

Apolozeus Points 2721

Ceci n'est pas lié à docker, mais à un comportement normal en vim . Comme le fichier se trouve dans le répertoire de l'utilisateur /home/cp Par conséquent, le cp aura toutes les autorisations. Ce que wq! La commande consiste à supprimer l'ancien contenu et à en insérer un nouveau dans le fichier. /home/cp/hello.txt .

Vous pouvez le tester rapidement en créant un fichier supplémentaire dans le dossier que vous avez créé. cp n'a pas d'autorisation complète.

0voto

Muhammad Asad Points 1

Vous avez pu le faire parce que vous avez tous les droits sur le répertoire /cp. Pour ce faire, il n'y a que deux options :

  1. Si vous êtes le propriétaire du fichier. Alors vim change les permissions en écriture(w) et réécrit le fichier. et après l'avoir sauvegardé, il restaure les anciennes permissions du fichier.
  2. Si vous n'êtes pas le propriétaire du fichier, mais que vous avez les droits d'écriture dans le répertoire courant, Vim supprimera le fichier original et écrira le document dans un nouveau fichier portant le même nom. Le nouveau fichier se verra alors attribuer les mêmes permissions que le fichier original, mais il vous appartiendra.

Ce sont là les deux seules conditions dans lesquelles un fichier en lecture seule peut être remplacé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X