Je veux exécuter la commande iptables
dans un conteneur Docker Ubuntu 16.04. J'ai créé un utilisateur, étant donné que les autorisations root de l'utilisateur, les ont ajoutées au groupe Sudo
, mais on me dit toujours que je n'exécute pas iptables
en tant que root.
$ groups
stack root Sudo
$ Sudo whoami
root
$ Sudo iptables --list
iptables v1.6.0: can't initialize iptables table `filter': Permission
denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
Dans mon fichier /etc/sudoers
, J'ai la ligne: %Sudo ALL=(ALL:ALL) ALL
, qui, je crois, devrait permettre à tout utilisateur du groupe Sudo
(que je suis) d'exécuter n'importe quelle commande, mais je obtenez toujours l'erreur d'autorisation refusée.
Comment exécuter avec succès la commande iptables
en tant que cet utilisateur?
Veuillez noter que je fais cela dans un conteneur Docker avec image: ubuntu:16.04
Si vous souhaitez avoir un accès à iptables
dans vos conteneurs, vous devez activer des capacités spécifiques via le --cap-add=NET_ADMIN
commutateur lors de l'exécution initiale du conteneur.
$ docker run --cap-add=NET_ADMIN -it ubuntu:16.04
Ensuite, dans le conteneur, configurez iptables
& Sudo
:
# apt update -y
# apt-get install iptables Sudo -y
Puis à l'intérieur du conteneur, configurez un utilisateur, user1
, et l'a ajouté au groupe Sudo
:
# adduser user1
# adduser user1 Sudo
Ensuite, définissez l'utilisateur sur user1
:
# su - user1
Vérifier user1'
s Autorisations Sudo:
$ Sudo -l
[Sudo] password for user1:
Matching Defaults entries for user1 on 1356bf8bd61a:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User user1 may run the following commands on 1356bf8bd61a:
(ALL : ALL) ALL
Vérifiez s'ils peuvent accéder à iptables
via Sudo
:
$ Sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination