iptables
Ubuntu 16.04 Dockerコンテナでこのコマンドを実行したいです。そのユーザーにroot権限を付与してユーザーを作成し、それをグループに追加しましたが、まだrootとして実行されていないというsudo
メッセージが表示されます。iptables
$ 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.
私の/etc/sudoers
ファイルには次の行があります。この行は、グループ内のすべてのユーザー(自分が属するグループ)がコマンドを実行できる%sudo ALL=(ALL:ALL) ALL
ようにする必要があると思いますsudo
が、依然として権限拒否エラーが発生します。
iptables
このユーザーでこのコマンドを正常に実行するにはどうすればよいですか?
イメージがある Docker コンテナでこれを行っています。ubuntu:16.04
答え1
能力
iptables
コンテナ内からアクセスするには、--cap-add=NET_ADMIN
コンテナを初めて実行するときにスイッチを介して特定の機能を有効にする必要があります。
はい
$ docker run --cap-add=NET_ADMIN -it ubuntu:16.04
次にコンテナにiptables
&を設定しますsudo
。
# apt update -y
# apt-get install iptables sudo -y
次に、コンテナ内でユーザーを設定してグループuser1
に追加します。sudo
# adduser user1
# adduser user1 sudo
次に、ユーザーを次のように設定しますuser1
。
# su - user1
user1'
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
iptables
以下からアクセスできることを確認してください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