nor*_*ght 17 ubuntu permissions iptables docker
我想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.
Run Code Online (Sandbox Code Playgroud)
在我的/etc/sudoers文件中,我有一行:%sudo ALL=(ALL:ALL) ALL,我相信它应该允许sudo组中的任何用户(我是)运行任何命令,但我仍然收到权限被拒绝的错误。
我如何iptables以该用户身份成功运行命令?
请注意,我在带有图像的 Docker 容器中执行此操作: ubuntu:16.04
slm*_*slm 24
如果您想iptables在容器内进行访问,则需要--cap-add=NET_ADMIN在最初运行容器时通过开关启用特定功能。
$ docker run --cap-add=NET_ADMIN -it ubuntu:16.04
Run Code Online (Sandbox Code Playgroud)
然后在容器中设置iptables& sudo:
# apt update -y
# apt-get install iptables sudo -y
Run Code Online (Sandbox Code Playgroud)
然后在容器内部,设置一个用户user1,并将其添加到sudo组中:
# adduser user1
# adduser user1 sudo
Run Code Online (Sandbox Code Playgroud)
然后将用户设置为user1:
# su - user1
Run Code Online (Sandbox Code Playgroud)
检查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
Run Code Online (Sandbox Code Playgroud)
检查他们是否可以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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31451 次 |
| 最近记录: |