
우리는 화면 세션을 지나치게 오랜 시간 동안 유지하고 어떤 식으로든 세션 시간 초과를 우회한 사용자를 위해 엄격한 화면 세션 킬러를 다시 작성하려고 합니다.
현재 방법은 screen의 pid를 찾아서 죽이는 것입니다. screen 프로그램은 다른 사용자 세션에 연결할 수 있는 방식으로 작성된 것처럼 보이지만 루트로 무엇이든 하려고 하면 화면 디렉터리는 다음과 같습니다. 다른 디렉토리. 이것은 보안상의 이유로 추측되지만, 다음과 같은 작업을 수행할 수 있도록 의도적으로 이를 무시할 수 있는 방법이 있습니까 screen -r somedude/33333 -d -X quit
? 루트로?
답변1
표준 screen
인스턴스는 즉 singleuser
, 각 인스턴스를 생성한 사용자만 액세스할 수 있습니다.
다중 사용자 screen
인스턴스를 허용하려면 다음 명령을 추가할 수 있습니다.
multiuser on
addacl root,<user1>,<user2>,...
전역 screen
구성, 즉 /etc/screenrc
.
이후의 모든 screen
인스턴스는 다중 사용자여야 합니다 screen
. 즉, 에 지정된 다른 사용자가 연결할 수 있습니다 addacl
. 사용자별 명령에 의해 무시되는 경우는 제외됩니다.
다음을 사용하여 사용자 화면을 나열할 수 있습니다.
$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>
다음을 사용하여 다른 사용자의 화면에 연결합니다.
$ screen -d -r <user>/<pid>
확인하다man screen
, 에 대한 자세한 내용은 사용자 정의 섹션을 참조하세요 screenrc
.
각 사용자는 자신의 사용자별 screenrc
명령을 파일에 추가할 수도 있으므로 $HOME/.screenrc
해당 사용자에 대한 다중 사용자 화면을 비활성화할 수도 있습니다.