Ubuntu
列出 Docker 容器中的 IP 表
我想
iptables
在 Ubuntu 16.04 Docker 容器中執行該命令。我創建了一個使用者,給定使用者 root 權限,將它們添加到sudo
組中,但我仍然被告知我沒有iptables
以 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.
在我的
/etc/sudoers
文件中,我有一行:%sudo ALL=(ALL:ALL) ALL
,我認為應該允許sudo
組中的任何使用者(我是)執行任何命令,但我仍然收到權限被拒絕錯誤。作為該使用者,我將如何成功執行該
iptables
命令?請注意,我在帶有圖像的 Docker 容器中執行此操作:
ubuntu:16.04
能力
如果您想
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'
s 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
參考