需结合用户隔离、应用白名单、PAM时间限制、iptables网络管控及auditd审计五层机制实现:一、创建无sudo权限的子用户;二、通过dconf禁用未授权应用;三、用PAM time.so限定登录时段;四、按UID配置iptables阻断外网访问;五、启用auditd监控execve与connect等关键行为。

如果您希望在麒麟操作系统(Kylin OS)中对特定用户(如未成年家庭成员)实施上网行为管控与使用时长约束,则需结合系统级用户隔离、应用白名单、时间策略及网络访问限制等多层机制实现。以下是具体可行的操作路径:
一、创建受控子用户并配置独立会话环境
通过建立非特权普通用户账户,将其与主账户完全隔离,是实施家长控制的基础前提。该账户不拥有sudo权限,无法安装软件或修改系统设置,所有操作均受限于其家目录与分配组权限。
1、以root身份打开终端,执行命令创建新用户:
sudouseradd -m -s /bin/bash -c "儿童账户" childuser
2、为该用户设置强密码:
sudo passwd childuser
3、禁用该用户的sudo能力(确保/etc/sudoers中无对应条目,且未加入sudo或admin组):
sudo deluser childuser sudo
sudo deluser childuser admin
4、验证用户主组与附加组归属:
id childuser
二、启用桌面环境级应用白名单机制
麒麟OS默认搭载UKUI桌面环境,支持通过dconf配置限制用户可启动的应用程序列表,仅允许预设安全应用运行,阻止浏览器、游戏、终端等高风险程序启动。
1、切换至childuser账户登录一次,生成其dconf用户数据库:
2、以root身份执行以下命令,锁定应用启动器可见项:
sudo -u childuser dbus-run-session gsettings set org.ukui.menus applications "['org.gnome.Nautilus.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.TextEditor.desktop']"
3、禁用全部未授权.desktop文件的执行权限:
sudo find /usr/share/applications/ -name "*.desktop" -exec sudo chmod 600 {} \;
4、对关键应用(如Firefox、Chrome)移除执行位并重命名其.desktop文件:
sudo chmod -x /usr/bin/firefox
sudo mv /usr/share/applications/firefox.desktop /usr/share/applications/firefox.desktop.disabled
三、配置PAM时间限制模块控制每日登录时段
利用Linux PAM(Pluggable Authentication Modules)的time.so模块,可精确限定childuser每天可登录系统的起止时间,超出时段将拒绝认证,适用于作息管理场景。
1、编辑PAM时间策略配置文件:
sudo nano /etc/security/time.conf
2、在文件末尾添加如下行(示例:仅允许周一至周五17:00–20:30,周六日09:00–12:00):
childuser;Al0000-2400;Wk0000-2400;MoTuWeThFr1700-2030;SaSu0900-1200;
3、启用PAM time模块,在/etc/pam.d/common-auth中插入:
auth [default=ignore] pam_time.so
4、重启lightdm服务使策略生效:
sudo systemctl restart lightdm
四、部署iptables规则限制指定用户的外网访问目标
基于用户ID(UID)匹配进行网络流控,可阻断childuser账户访问特定域名或IP段(如视频平台、社交网站),同时放行教育类白名单地址,无需依赖第三方代理软件。
1、确认childuser的UID数值:
id -u childuser
2、加载nf_owner模块并添加OUTPUT链规则(以UID 1002为例):
sudo modprobe xt_owner
sudo iptables -A OUTPUT -m owner --uid-owner 1002 -d 110.242.68.0/24 -j DROP
sudo iptables -A OUTPUT -m owner --uid-owner 1002 -d 223.252.199.6 -j DROP
3、添加教育白名单例外规则(优先级高于DROP):
sudo iptables -I OUTPUT -m owner --uid-owner 1002 -d 202.195.128.0/17 -j ACCEPT
4、保存当前iptables规则至持久化文件:
sudo iptables-save > /etc/iptables/rules.v4
五、启用auditd审计子系统监控异常操作行为
通过Linux内核审计框架持续记录childuser账户的关键系统调用(如execve、connect、openat),可发现绕过限制的尝试行为,为家长提供可追溯的操作日志证据。
1、安装并启用audit服务:
sudo apt-get install auditd audispd-plugins
sudo systemctl enable auditd
sudo systemctl start auditd
2、添加针对childuser的审计规则(监控所有execve调用):
sudo auditctl -a always,exit -F uid=1002 -S execve
3、添加网络连接监控规则:
sudo auditctl -a always,exit -F uid=1002 -S connect
4、配置日志归档路径与轮转策略(编辑/etc/audit/auditd.conf):
log_file = /var/log/audit/childuser-audit.log
num_logs = 6
5、设置日志读取权限仅限root与家长主账户:
sudo chown root:parentgroup /var/log/audit/childuser-audit.log
sudo chmod 640 /var/log/audit/childuser-audit.log










