银河麒麟系统实现多用户隔离需启用lightdm多会话支持、绑定专属桌面会话、加固d-bus隔离、限制进程可见性及配置文件权限。首先修改/etc/lightdm/lightdm.conf启用多会话;其次通过~/.xsession或d-bus配置确保用户登录即加载对应桌面;再通过pam、sysctl禁用跨用户探测;最后用组权限与sgid位管控共享目录访问。

银河麒麟系统需确保多个用户登录后互不可见、进程不干扰、桌面环境不串扰,才能实现真正的多用户隔离。默认安装的LightDM显示管理器仅支持单会话驻留,若未调整底层会话策略,用户A登录后用户B再登录会强制注销A,或出现托盘图标错乱、通知混发、剪贴板跨用户泄露等问题。
启用LightDM多会话支持
这是多用户隔离的底层前提,决定系统是否允许两个图形会话同时驻留在内存中。
1、按Ctrl+Alt+T打开终端,执行:sudo nano /etc/lightdm/lightdm.conf
2、定位到[Seat:*]节区,在该节区内确认以下三行存在且**未被注释**(即行首不能有#):
allow-guest=false
greeter-show-manual-login=true
user-session=ukui
3、【user-session值必须与目标用户实际使用的桌面环境完全一致】,例如某用户已配置GNOME,则此处必须写user-session=gnome;若写错,该用户将无法完成图形登录,黑屏返回登录界面。
4、保存并退出(Ctrl+O → Enter → Ctrl+X),然后执行:sudo systemctl daemon-reload && sudo systemctl restart lightdm
为各用户绑定专属桌面会话
仅启用多会话还不够,还需让每个用户每次登录都自动加载其专属桌面环境,避免登录界面手动选择导致会话混乱。
方法一:通过~/.xsession文件指定
1、以用户student01身份登录一次,生成其个人配置目录
2、打开终端,执行:nano ~/.xsession
3、在文件中写入:exec ukui-session(轻量办公用)或exec gnome-session(多任务开发用)
4、保存退出,注销后重新登录,验证是否自动进入对应桌面
方法二:通过D-Bus会话隔离加固
1、编辑系统级D-Bus会话配置:sudo nano /etc/dbus-1/session.conf
2、找到<limit name="max_replies_per_connection"></limit>这一行,将其值改为1024
3、保存后无需重启服务,该设置在下次新用户登录时自动生效
限制跨用户资源可见性
默认情况下,同一台物理机上的多个用户会话可通过D-Bus消息或/proc接口相互探测进程,存在隐私泄露风险。
第一步:禁用PAM会话共享
编辑/etc/pam.d/lightdm,在文件末尾添加一行:session optional pam_umask.so umask=0077
第二步:关闭用户间进程可见
执行命令:echo 'kernel.unprivileged_userns_clone=0' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
第三步:校验隔离效果
以用户A登录后,在终端运行:ps -u $(whoami) | wc -l;再切换至用户B登录,执行相同命令——两个结果应仅显示各自用户的进程数,且ps aux输出中不应出现对方用户名的进程条目。
配置用户级文件权限隔离
多用户共用一台主机时,家目录以外的协作目录若权限宽松,极易造成误删或越权读取。
① 创建部门专用组并加入用户
sudo groupadd dept_finance → sudo usermod -aG dept_finance finance01 → sudo usermod -aG dept_finance finance02
② 设置共享目录属组与SGID位
sudo chgrp dept_finance /home/share/finance → sudo chmod 2775 /home/share/finance
③ 【关键操作:禁用其他用户访问权限】 执行:sudo chmod o-rx /home/share/finance,否则任何本地用户均可浏览该目录内容
④ 验证ACL继承效果
以finance01身份在该目录下新建文件,执行ls -l,确认新文件属组为dept_finance且权限包含g+w











