Linux сетевые пространства имен как обычный пользователь C - PullRequest
0 голосов
/ 09 июля 2020

В linux вы можете создавать сетевые пространства имен, используя команду ip. Но для запуска этой команды вам нужно быть root. Однако вы все равно можете создавать сетевые пространства имен как обычный пользователь:

#include <unistd.h>
#include <sched.h>

unshare(CLONE_NEWUSER | CLONE_NEWNET);

. С помощью этой команды новое сетевое пространство имен будет принадлежать ограниченному пространству имен пользователя.

С новым сетевым пространством имен я не могу подключиться к inte rnet. Для создания пары veth требуется root, есть ли способ разрешить моему сетевому пространству имен подключаться к inte rnet без root? И создайте это сетевое пространство имен с помощью C. Я знаю, что многие функции, такие как совместное использование физической сети с пространством имен, были бы невозможны. Можете ли вы создавать виртуальные интерфейсы, такие как tun0, в ограниченном сетевом пространстве имен.

...