![x 시작과 디스플레이 관리자 시작의 차이점은 무엇입니까?](https://linux55.com/image/81106/x%20%EC%8B%9C%EC%9E%91%EA%B3%BC%20%EB%94%94%EC%8A%A4%ED%94%8C%EB%A0%88%EC%9D%B4%20%EA%B4%80%EB%A6%AC%EC%9E%90%20%EC%8B%9C%EC%9E%91%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
startx
디스플레이 관리자 실행과 시작의 차이점은 무엇입니까 sudo service (display_manager) start
? 두 가지 다른 이벤트가 진행되고 있었는데, 그 이면의 차이점이 무엇인지 궁금합니다.
답변1
전통적인 Unix 시스템과 Mac OS X를 제외한 대부분의 최신 Unix 시스템의 그래픽 사용자 인터페이스는 다음을 기반으로 구축되었습니다.X 윈도우 시스템. X 서버는 하드웨어(디스플레이 및 입력 주변 장치)와 통신하고 창을 표시하고 사용자 입력을 라우팅하기 위한 기본 기본 요소를 제공하는 구성 요소입니다. X 클라이언트라고 불리는 다른 프로그램은 X 서버와 통신하여 창을 표시하고 사용자 입력을 듣습니다.
하드웨어와 통신하려면 X 서버에 특별한 권한이 필요할 수 있습니다. 예를 들어 일부 시스템에서는 X 서버가 setuid 루트입니다. 최근 시스템은 보안을 강화하기 위해 X 서버가 루트로 실행되는 것을 방지하려고 합니다. 시스템에 따라 시스템 콘솔에서 X 서버를 실행하는 것은 특정 사용자나 콘솔에 물리적으로 액세스할 수 있는 사용자로 제한될 수 있습니다.
X 서버는 하드코드된 배경 패턴과 마우스 커서를 표시하는 것 외에는 아무것도 하지 않습니다. 유용한 작업을 수행하려면 일반적으로 다음을 포함하여 일부 클라이언트를 시작해야 합니다.창 관리자.
GUI 세션을 실행하는 일반적인 방법은 필요한 모든 클라이언트(창 관리자, 데스크톱 위젯, 클립보드 관리자, 사용자의 이전 세션에서 다시 시작하는 프로그램 등)의 시작을 담당하는 세션 관리자 프로그램을 실행하는 것입니다. 세션 관리자는 X 서버와 상호 작용하므로 X 서버 다음에 시작해야 합니다. 모든 데스크톱 환경에는 자체 세션 관리자가 있습니다. 거의 모든 창 관리자를 세션 관리자로 사용할 수 있으며, 상황에 따라 쉘을 실행하는 터미널을 최소한의 세션 관리자로 취급할 수 있습니다. 중요한 점은 사용자가 다음을 수행할 수 있다는 것입니다. 실행하려는 프로그램을 시작합니다.
GUI 세션을 시작하는 두 가지 전통적인 방법이 있습니다:
- 사용자가 이미 로그인했지만 아직 GUI가 없는 경우 다음을 실행할 수 있습니다.
xinit
주문하다. 이 명령은 X 서버를 시작한 다음 세션 관리자를 시작하고 세션 관리자가 종료될 때까지 기다린 다음 X 서버를 종료합니다. 이런 방식으로 세션의 클라이언트와 X 서버는 동일한 수명주기를 갖습니다. 이startx
프로그램은 작은 패키지로 제공됩니다xinit
. - 사용자가 로그인하기 전에 GUI를 시작할 수도 있습니다. 이 경우 유일한 클라이언트는디스플레이 관리자, 로그인 프롬프트를 제공합니다. 사용자가 로그인하면 디스플레이 관리자는 세션 관리자를 호출합니다. 세션 관리자가 종료되면 디스플레이 관리자는 세션에서 더 이상 실행 중인 프로그램이 없는지 확인하고 새 로그인 프롬프트를 표시합니다.
이를 보는 또 다른 방법은 그래픽 로그인 세션을 갖기 위해서는 그래픽 인터페이스가 있어야 하고 사용자가 로그인해야 한다는 것입니다. 이 두 단계는 순서에 관계없이 수행할 수 있습니다. 즉, 로그인한 다음 GUI를 시작하거나( startx
방법), GUI를 시작한 다음 로그인합니다(디스플레이 관리자 방법).
다른 설정은 덜 일반적이지만 가능합니다. 예를 들어, 키오스크 설정에서 시스템 시작 스크립트는 X 서버와 단일 전체 화면 클라이언트를 시작합니다. 자동 로그인 설정에서 디스플레이 관리자는 시작 시 기본 사용자에 대한 세션 관리자를 실행합니다.
답변2
일반적으로 Unix 시스템에서는 X(또는 X 내에서 실행되는 디스플레이 관리자)를 시작하려면 루트가 필요합니다.
디스플레이 관리자 없이 루트가 X를 시작하면 X 세션의 현재 사용자는 루트입니다.
디스플레이 관리자를 사용하면 루트는 X와 디스플레이 관리자를 시작하지만 다른 사용자가 해당 환경에서 세션을 시작할 수 있도록 허용합니다. 이는 X를 루트로 시작하더라도 "일반" 사용자가 이제 모든 프로세스를 안전하게 제어하고 실행할 수 있음을 의미합니다.
그러나 루트는 여전히 X 세션을 "소유"합니다. 종료 또는 다시 시작과 같은 중요한 작업을 수행할 수 있는 권한을 사용자에게 부여하지 않으면(적절한 그룹에 사용자를 추가하여) 사용자는 X를 중지할 수 없습니다. 루트만이 이 작업을 수행할 수 있습니다. 이는 사용자가 갑자기 컴퓨터를 다시 시작하여 프로세스의 다른 세션을 방해하는 것을 원하지 않는 다중 사용자 시스템에서 중요할 수 있습니다.