GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je chown un fichier à un subuid sans sudo

Les sous-uids ne sont pas censés fonctionner comme vous vous y attendez. Ils sont conçus pour mapper les UID d'un espace de noms d'utilisateur à différents UID en dehors de cet espace de noms, ce qui est pratique (et a en fait été conçu) pour les conteneurs.

Cependant, un processus ne peut toujours avoir qu'un seul ensemble d'UID (espace de noms d'utilisateur) et les utilisateurs ne sont pas autorisés à modifier la propriété des fichiers, pour des raisons de sécurité évidentes. Peu importe, en ce qui concerne le processus lui-même, si l'utilisateur est en fait quelqu'un d'autre en dehors de l'espace de noms.

C'est pourquoi le chown la commande échoue :peu importe si vous pouviez avoir un autre UID, si l'espace de noms était différent , à ce moment-là, vous n'avez pas cet UID, et par conséquent, vous ne pouvez pas changer la propriété des fichiers (puisque vous n'êtes pas root).

À partir de pourquoi pouvez-vous supprimer le fichier:cela n'a en fait rien à voir avec les sous-uids, à la place, tout dépend de la propriété du répertoire dans lequel se trouve le fichier. Étant donné que la suppression du fichier modifie le répertoire, et non le fichier lui-même, si vous pouvez écrire le répertoire, vous pouvez en supprimer tous les fichiers (à l'exception des répertoires "collants").


Il existe un programme lxc-usernsexec qui vient avec lxc . Cela vous permet de remapper les identifiants d'utilisateur à l'aide des cartes /etc/subuid et /etc/subgid .

Plus précisément, vous pouvez effectuer les opérations suivantes.

  1. lxc-usernsexec -- touch /tmp/test
  2. ls -l /tmp/test montrera que le fichier est propriétaire:groupe identique à la première paire subuid:subgid dans votre carte.
  3. rm /tmp/test devrait donner une erreur puisque vous n'avez pas actuellement le bon uid/gid.
  4. lxc-usernsexec -- rm /tmp/test devrait supprimer le fichier.

J'espère que cela t'aides! Ce qui précède nécessite probablement la configuration de diverses choses pour une utilisation non privilégiée du conteneur LXC. En particulier, je pense que /proc/sys/kernel/unprivileged_userns_clone devrait être 1.


Votre problème n'a rien à voir avec subuid .

Selon https://superuser.com/questions/697608/chown-operation-not-permitted

Les utilisateurs non privilégiés (pas root) ne peuvent pas chown des fichiers à d'autres noms d'utilisateurs. Pour utiliser chown, un utilisateur doit avoir les privilèges de l'utilisateur cible. En d'autres termes, seul root peut donner un fichier à un autre utilisateur.


Linux
  1. Linux chmod et chown - Comment modifier les autorisations et la propriété des fichiers sous Linux

  2. Comment savoir si un utilisateur a des droits Sudo

  3. Comment puis-je lier symboliquement un fichier sous Linux?

  4. Comment un gestionnaire de fichiers peut-il monter un lecteur sans racine ?

  5. Comment puis-je sortir une commande dans un fichier, sans obtenir un fichier vide en cas d'erreur ?

Comment ajouter un utilisateur aux Sudoers dans Debian

Comment changer le propriétaire d'un fichier/groupe avec la commande chown sous Linux

Comment exécuter la commande Sudo sans mot de passe

Comment le gestionnaire de fichiers monte-t-il un lecteur externe sans Sudo ?

Comment exécuter des commandes Sudo sans mot de passe

Comment exécuter les commandes sudo sans mot de passe