로컬 및 원격 세션 식별

로컬 및 원격 세션 식별

로컬 컴퓨터에서 실행되면 작업을 수행하지만 원격 xrdp 세션에서 호출되면 작업을 수행하지 않는 시작 스크립트를 작성하고 싶습니다.

If Local
{
 do something
}
If remote
{
 do something else
}

세션이 로컬로 시작되었는지 원격으로 시작되었는지 어떻게 확인합니까?

답변1

불행하게도 이것은 매우 어려운 문제이다. 따라서 일반적으로 대답은 불행히도 '아니요'입니다. $DISPLAY를 보는 것만으로는 충분하지 않습니다. 이는 사용자가 실제로 컴퓨터에 있다는 것이 아니라 일부 형태의 로컬 X 서버(예: xrdp)가 있음을 의미하기 때문입니다.

내가 아는 유일한 옵션은 "is-local" 속성을 가진 ConsoleKit입니다. 불행하게도 나는 이것을 쉘 스크립트에서 확인하는 쉬운 방법을 모릅니다. "ck-list-sessions"을 사용하여 뭔가를 할 수 있을 수도 있습니다.

또한 버그가 있으므로 원격 세션이 로컬이라고 생각하도록 쉽게 속일 수 있습니다.

보안이 그다지 중요하지 않다면 xrdp에 해당 세션에만 적용되는 특수 환경 변수가 설정되어 있는지 확인하는 것이 좋습니다. 터미널에서 "env"를 실행하면 사용 가능한 항목이 표시됩니다.

관련 정보