Отсюда рецепт
Команда для отключения интернета нашлась на askubuntu:
sudo iptables -A OUTPUT -p all -m owner --uid-owner <user-name> -j DROP
Эта команда сбрасывает все пакеты, исходящие от пользователя .
Теперь нужно сделать это изменение постоянным. В ответе на askubuntu предлагают для этого создать в директории /etc/network/if-up.d/ скрипт, который вызывает команду выше:
cd /etc/network/if-up.d/ gksudo gedit block_user sudo chmod +x block_user
У меня это почему-то не сработало:(, после перезагрузки sudo iptables -L показал таблицу без упоминания этого пользователя.
Другой способ нашелся на ubuntu.ru. Кроме помещения скрипта в /etc/network/if-up.d/, там предлагают вызывать скрипт из /etc/network/interfaces:
gksudo gedit /etc/network/interfaces
добавляем последней строкой
post-up /etc/network/if-up.d/block_user
Проверяем после перезагрузки:
$ sudo iptables -L 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 DROP all -- anywhere anywhere owner UID match <user-name>