systemd 내부의 화면에는 /run/screen에 대한 777 권한이 필요하지만 외부에서는 775 권한이 필요합니다.

systemd 내부의 화면에는 /run/screen에 대한 777 권한이 필요하지만 외부에서는 775 권한이 필요합니다.

애플리케이션을 실행하려고 합니다.체계내부 서비스화면컨테이너.

서비스를 시작하려고 하면 다음 오류 메시지와 함께 실패합니다.

screen[11648]: Directory '/run/screen' must have mode 777.

단순한 실수처럼 보이지만 간단한 해결책이 있습니다. 이에 따라 권한을 변경하면 /run/screen서비스가 문제없이 시작됩니다.

하지만 이제 스크린 세션을 연결하려고 하면(또는 screen일반 사용자나 루트로 어떤 방식으로든 실행하려고 하면) 오류 메시지가 나타납니다.

Directory '/run/screen' must have mode 775.

권한을 변경하면 분명히 첫 번째 오류로 돌아가게 되었고 거기에서 하루 종일 화면에서 고양이와 쥐 놀이를 할 수 있었습니다.

Screen version 4.05.00 (GNU) 10-Dec-16

운영 체제는데비안 9(섬기는 사람).

이것은 버그인가요, 아니면 제가 뭔가 잘못하고 있는 건가요? 어쨌든, 어떻게 작동하게 만들 수 있나요?

답변1

데비안 9에서 systemd로 마인크래프트 서버를 설정하려고 할 때도 같은 문제가 발생했습니다. 내가 아는 한 수정 사항은 없지만 여기에 부분적인 해결 방법이 있습니다. 장치 구성 파일에 다음 줄을 추가했습니다.

PermissionsStartOnly=true
ExecStartPre=/bin/chmod 777 /run/screen

따라서 서비스를 시작하는 데 필요한 권한을 기준으로 권한이 조정됩니다. 화면을 직접 사용해야 할 때마다 권한을 다시 775로 설정할 수 있습니다.

답변2

NoNewPrivileges=true로 변경합니다 NoNewPrivileges=false(섹션에 없으면 줄을 추가합니다 [Service]). 이렇게 하면 화면이 평소와 같이 setgid 모드에서 실행될 수 있으므로 777 권한을 요청하지 않습니다.

관련 정보