一、user.slice 中“应该放行哪些设备”(结论先行)

原则只有一句话:

user.slice 只放行“与 GPU 计算无关、但与日常 Linux 用户态稳定性强相关”的设备。

也就是说:

✅ 推荐的 user.slice 放行清单(最终版)

# /etc/systemd/system/user.slice.d/no-gpu.conf
[Slice]
DevicePolicy=closed

# ===== 基础字符设备(shell / libc / 随机数)=====
DeviceAllow=/dev/null rwm
DeviceAllow=/dev/zero rwm
DeviceAllow=/dev/full rwm
DeviceAllow=/dev/random rwm
DeviceAllow=/dev/urandom rwm

# ===== 终端 / SSH / PTY 必需 =====
DeviceAllow=/dev/tty rwm
DeviceAllow=/dev/ptmx rwm
DeviceAllow=char-pts rwm

# ===== 常见用户态工具依赖(安全)=====
DeviceAllow=char-mem r
DeviceAllow=char-cpu/* r
DeviceAllow=/dev/fuse rwm

# ===== NVIDIA:只放行“控制面”,不放行算力 =====
DeviceAllow=/dev/nvidiactl rwm
DeviceAllow=/dev/nvidia-uvm rwm
DeviceAllow=/dev/nvidia-uvm-tools rwm

❌ 明确不放行的东西(你现在做得是对的)

这些一旦放行,NVML / CUDA / torch 会直接起飞


二、为什么这样配“不会影响系统稳定性”

你之前问过一个非常关键的问题:“会不会影响硬盘、网卡?”

答案是:不会,原因在这里。

1️⃣ 块设备(磁盘)不在 user.slice 的控制范围内