systemd:如何使用本地登录启用/禁用网络接口?

systemd:如何使用本地登录启用/禁用网络接口?

我们有一个设置,学生登录(使用 LDAP 身份验证)到 Ubuntu 16.04 计算机,其中安装了两个网卡:一个用于连接到 LAN 和以太网,另一个用于为用户设备(例如 Raspberry Pi)公开连接。目前,辅助网络接口(以及相关iptables规则和dnsmasq守护程序)始终处于打开状态,但我们希望它能够打开仅有的当用户本地登录。

据我所知,使用systemd它应该可以在用户登录和退出时运行一项服务(可能是占用或关闭网络接口的脚本)。但是,我们需要确保只有本地登录才能实现这一点(即 tty1-6 或 lightdm 上的 GUI 登录)(这是出于合规性原因,因为我们不能留下无需适当用户身份验证即可工作的“免费使用”网线),而且我无法在文档中找出如何正确执行此操作。

现在我尝试了这个单元文件:

[Unit]
Description=LAN sharing for users

[Service]
Type=oneshot
RemainAfterExit=false
Restart=no
ExecStart=/sbin/ifup eth1
ExecStop=/sbin/ifdown eth1

[Install]
WantedBy=default.target

但是我无法在用户登录时以 root 身份运行它,也不知道如何确保这是本地登录。这systemd在 Ubuntu 16.04 LTS 上是否可行(即 systemd 版本 229-4),如何正确实现它?我认为这很简单(我认为这只是将声卡等外围设备的权限仅授予本地登录的用户)。

相关内容