GNU/Linux >> Tutoriels Linux >  >> Linux

Est-il possible d'exécuter 'unshare -n [program]' en tant qu'utilisateur non privilégié ?

Je veux exécuter un programme sans accès à Internet, par exemple

unshare -n ping 127.0.0.1 .

En tant qu'utilisateur non privilégié, il renvoie Operation not permitted , en tant qu'utilisateur privilégié, il renvoie le Network is unreachable souhaité .

Existe-t-il un moyen de le faire fonctionner également pour l'utilisateur non privilégié ?

Réponse acceptée :

Dans les versions ultérieures d'util-linux, unshare a obtenu le --map-root-user option. Citant unshare(1) version 2.26.2 :

-r, –map-root-user

Exécutez le programme uniquement après que les ID d'utilisateur et de groupe effectifs actuels ont été mappés sur l'UID et le GID de superutilisateur dans l'espace de noms d'utilisateur nouvellement créé. Cela permet d'acquérir facilement les capacités nécessaires pour gérer divers aspects des espaces de noms nouvellement créés (tels que la configuration d'interfaces dans l'espace de noms réseau ou le montage de systèmes de fichiers dans l'espace de noms de montage), même lorsqu'ils sont exécutés sans privilège. En tant que simple fonctionnalité pratique, il ne prend pas en charge les cas d'utilisation plus sophistiqués, tels que le mappage de plusieurs plages d'UID et de GID. Cette option implique –setgroups=deny.

Ainsi, sur les systèmes plus récents, vous pouvez exécuter :

unshare -n -r ping 127.0.0.1

Et cela donnera le Network is unreachable attendu .

Sur les systèmes Debian, vous pouvez toujours obtenir une Operation not permitted erreur, vous devez d'abord activer les espaces de noms d'utilisateurs non privilégiés en exécutant :

sudo sysctl -w kernel.unprivileged_userns_clone=1

Remarque :pour un plus large éventail de cas d'utilisation, le plus sophistiqué bwrap --unshare-net peut être envisagé, comme décrit brièvement dans une autre réponse.


Linux
  1. Exécutez des conteneurs sur Linux sans sudo dans Podman

  2. Exécuter le script avec des arguments en tant qu'utilisateur ?

  3. Est-il possible d'exécuter Ubuntu sur un Nexus 7 ?

  4. Exécutez Docker en tant qu'utilisateur non root

  5. Comment exécuter une commande en tant qu'utilisateur spécifique dans un script d'initialisation ?

Est-il possible d'exécuter LINQPad avec Mono (Mac)

Exécuter une partie d'un script bash en tant qu'utilisateur différent

Upstart :exécuter le service en tant qu'utilisateur non privilégié et pré-démarrer le script en tant que root

Est-il possible d'exécuter automatiquement le céleri au démarrage ?

Est-il possible d'exécuter GNU pur ?

Exécuter un script shell en tant qu'utilisateur différent