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"실제" 파일 시스템이 아니라 ramdisk 또는 ramdisk입니다 devtmpfs. tmpfs유일한 목적은 부팅 시 생성된 장치 노드를 보관하는 것입니다 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.

관련 정보