重新启动 systemd 时,systemd /dev/xx 访问发生变化

重新启动 systemd 时,systemd /dev/xx 访问发生变化

当我在 docker 容器 A 中重新启动 systemd 时,/dev/XXX的访问权限将被更改。例如:

前:

docker exec -it xxxx bash 
chmod 755 /dev/random 

做:

docker restart xxxx

后:

docker exec -it xxxx bash

/dev/random将更改为0666

systemd 在 systemd 源代码中的哪个位置修改了这个?这符合逻辑吗?

这与 systemd-udevd 有关吗?

Execute /usr/lib/systemd/systemd-udevd? [Yes, No, Skip] [**    ] (4 of 6) A start job is running for Create Volatile Files and Directories (3min 48s / no limit)y
[***   ] (5 of 6) A start job is running for Mark the need to relabel after reboot (3min 49s / no limit)(src/core/manager.c:1519) Got notification message for unit -.slice
(src/core/manager.c:1519) Got notification message for unit systemd-udevd.service
(src/core/service.c:2741) systemd-udevd.service: Got notification message from PID 503 (READY=1)
(src/core/service.c:2785) systemd-udevd.service: got READY=1
(src/core/service.c:878) systemd-udevd.service changed start -> running
(src/core/job.c:811) Job systemd-udevd.service/start finished, result=done
[  OK  ] Started udev Kernel Device Manager.

答案1

/dev不是一个“真正的”文件系统,它是一个devtmpfs,即tmpfs或 ramdisk,其唯一目的是保存在引导时创建的设备节点udev

如果使用df's-T选项,您可以看到这一点:

# df -T /dev
Filesystem     Type     1K-blocks  Used Available Use% Mounted on
udev           devtmpfs    498256     0    498256   0% /dev

因为它是虚拟磁盘,所以内容在重新启动后不会保留。这是故意的,而不是问题 -udev将在启动时创建系统所需的设备节点。

如果您想/dev/random在重新启动后拥有特定的非标准权限,则需要创建一个规则文件来/etc/udev/rules.d/设置您想要的权限。不过,很难理解你为什么755想要/dev/random

相关内容