기계가 헤드리스이면 사용자는 더 이상 권한이 없습니다.


12

핵심 문제는 다음과 같습니다. 모든 실제 / 네이티브 디스플레이 위에 있지 않은 모든 그놈 세션 또는 해당 디스플레이 (예 : NXserver의 섀도우 모드)에 잘못된 권한이 있습니다. 루트로 실행할 때도!

VNC / 비-섀도우 NX 세션에서 문제가되는 동작을 해결하는 방법에 대한 의견이 있습니까?


오랫동안 홈 Ubuntu 헤드리스 서버를 업그레이드하고 있으며 이전 Ubuntu 버전에 존재하지 않는 많은 문제가 있습니다.

일부 세부 사항 :

  • ubuntu-11.04-server-amd64.iso로 시작한 다음 그 위에 ubuntu-desktop을 설치했습니다.
  • uname -a : Linux MiddleEarth 2.6.38-8 서버 # 42- 우분투 SMP 월요일 4 월 11 일 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux
  • 하드웨어는 Intel D920, 2GB Ram, gfx는 팬이없는 nvidia 6600, 3xGigabit, 1x100mbit, 모니터 없음, 키보드, 마우스가 없습니다.

라운드 1

모니터가 연결된 상태 에서 테스트 / 설정을 수행하는 동안 모니터 앞에 앉아있을 때와 데스크톱 컴퓨터에서 VNC를 사용할 때 (비노로) 모든 것이 번거로 웠습니다.

모니터가 없으면 문제가 발생하지만 :

[미해결 / 삭제]

바로 그 첫 번째 문제는 비노했다 고집과 GDM 중 / 전로드 좋아하지 않는. 그러나 이것은 헤드리스 시스템이기 때문에 기본적으로 X로 시작하는 데 필요하지 않습니다 (즉, 초기화 수준 변경). 그러나 이전 우분투 버전 (v9.04) 에서이 작업을 수행하기 가 매우 쉽다 는 것을 분명히 기억합니다 . 그리고 잘 작동했습니다. 그러나 더 이상!? 어쨌든 나는 그 아이디어를 완전히 떨어 뜨렸다.

[해결됨]

그런 다음 VNC를 엉망으로 만드는 Unity / 효과 였습니다 ( 부정 행위로 해결 ).

[미해결]

원래 NXserver로 전환하여 다음과 같은 문제가 tightvnc 또는 vino 문제이지만 그러한 행운은 없기를 바랐습니다. (참고 : round2 읽기)

VNC (또는 NXserver)를 통해 원격으로 접속하면 사용자 계정으로 HDD를 마운트 / 마운트 해제 할 수 없습니다.

스크린 샷 : 750GB_RAID1을 마운트 할 수 없습니다

VNC (또는 NXserver)를 통해 원격으로 접속할 때 사용자 계정이 일부 특권 구성 옵션에 액세스 할 수 없습니다
.

  • "시스템-> 관리-> 사용자 및 그룹"에서 아무것도 할 수 없습니다 (예 : '사용자 추가'또는 '고급 설정').
  • "시스템-> 관리-> 로그인 화면"에서 '잠금 해제'를 사용할 수 없습니다.
  • gparted가 파일 시스템에 대한 정보를 얻지 못했습니다.
  • 등 (다양한 다른 관리자 / 구성 대화 상자가 제대로 작동하지 않음)

실제 물리적 모니터 장치가 연결되어 있지 않을 때 사용자 권한이 올바르게 할당되지 않은 것과 관련이 있다고 생각할 수 있습니다.
우분투 11.04에서 'WHY'가 발생하는 이유는 머리가 없을 때 나를 피합니다. 이전 버전의 우분투 에서이 동작을 기억하지 못합니다.

HDD 장착 문제는 내부 / 정적 HDD의 문제가 아닙니다 (어쨌든 정적이므로 fstab에 추가합니다). 그러나 이동식 USB 미디어에는 큰 어려움이 있습니다.

나머지 문제는 어떻게 고칠 지
알지 못했습니다 ... 당신이 생각하는 것을 알고 있습니다 ... ssh, sudo su에 로그인하고 루트 아래에서 vncserver를 완전히 실행 하시겠습니까?

스크린 샷 : (루트로) gparted에서 fs 정보를 찾지 못함

서프라이즈 서프라이즈! 루트의 GUI도 깨졌습니다. gparted가 정보를 얻지 못하고, 사용자 및 그룹이 완전히 회색으로 표시됩니다 (이것은 일반 사용자와 다른 동작입니다). 이상하게도 로그인 화면 관리 proggy가 제대로 작동하는 것 같습니다.


라운드 2

(참고 : 이것이 이것이 결과에 영향을 주 었는지 또는 차이를 만들지 않았는지 모르겠습니다. 라운드 1과 라운드 2 사이의 어느 시점 에서이 스레드의 게시물 # 21과 # 24에 언급 된 변경 사항을 적용했습니다 )

일반 tightvnc / NXServer 세션은 동일한 동작을 갖지만 ...

[일부 해결책 / 실제 문제는 여전히 존재합니다]

NXClient 연결 설정에서 '섀도우'모드를 선택하면 그림자가 기본 디스플레이, 즉 바탕 화면 그림자에 연결됩니다 ...

이 세션에서 모든 것이 완벽하게 작동합니다!

내가 알아 차린 것은 즉시 키링 암호를 묻는다는 것입니다. 어쩌면 전체 혼란이 키링 시스템 그놈이 사용하는 것과 관련이 있습니까?

그러나 일반 (섀도우가 아닌) NX 연결 또는 일반 vnc로 연결하면 동일한 문제가 발생합니다.

추신 : round1과 round2를 썼을 때 며칠이 걸렸습니다 (로컬 파일을 txt 파일로 유지하고있었습니다). 작동 여부를 확인하기 위해 다양한 sugestions을 테스트하고 있었기 때문에 xorg.conf VNC 장치가 편집되는지 또는 nomodeset 설정에 차이가 있는지 확실하지 않습니다.

[2011-06-10 편집]

NXServer 및 GDM

글을 쓰는 시점에 시스템을 자동 로그인으로 설정했기 때문에 섀도우 연결이 간단하게 작동했습니다. 나중에 비활성화하고 시스템을 재부팅하면 NX에 오류가 발생했지만 약간의 인터넷 검색 으로이 스레드를 찾았습니다.

다음은 /usr/NX/etc/server.cfg에서 수행 한 주석 해제 및 변경 사항입니다.

EnableAdministratorLogin = "1"
EnableSessionShadowing = "1"
EnableInteractiveSessionShadowing = "1"
EnableSessionShadowingAuthorization = "0"
EnableDesktopSharing = "1"
EnableInteractiveDesktopSharing = "1"
EnableFullDesktopSharing = "1"
EnableAdministratorDesktopSharing = "1"
EnableDesktopSharingAuthorization = "0"
EnableSystemDesktopSharingAuthorization = "0"

(공공 네트워크, 예를 들어 대학 / 대규모 사무실 인 경우 좀 더 엄격한 설정을 사용하지만이 설정이 적합합니다)

재부팅 후 nxclient를 사용하여 데스크톱 '그림자'(기본 디스플레이) 설정에 로그인하고 GDM을 받았습니다! :디

불행히도 클립 보드는 '그림자'세션에서 작동하지 않습니다 (다른 / 일반 세션에서는 정상적으로 작동합니다)

[편집 2011-06-11] Xvfb를
우연히 발견 했지만 다음과 같이 사용하면 같은 문제가 있습니다.

Xvfb :2 -ac -screen 0 1280x1024x32 -pixdepths 8 24  2>&1 >/dev/null &
export DISPLAY=:2
gnome-session --session=2d-gnome 2>&1 >/dev/null &
x11vnc --display :2 --passwd blahblah

답변:


5

범인을 찾았습니다.
새로 설치 한 테스트에서 버그임을 확인했습니다.

버그 신고서를 제출했습니다

간단히 말해서 문제는 다음과 같습니다. VNC / NX 세션이있는 DISPLAY : 1 대신 polkit 인증 대화 상자가 DISPLAY : 0에 표시됩니다.

해결 방법 libpam-keyring을 사용하여 로그인시 자동 인증하는 것입니다.
나 ... 처음이 아마 그것을 할 것이라고, '예' 'auth_admin'에서 단에 대한 모든 정책 키트 설정에 대한 변경은 아마 ... 물론 모두 policyKit의 논쟁을 할 것, 문제를 해결하는 것 한숨


1
display : 0을 제거하도록 Xorg.conf를 변경할 수 있습니까? X가 거기에서도 실행될 이유가 없습니다. 이 방법으로 VNC / NX는 DISPLAY : 0?
user606723

2

이것이 올바른 PolicyKit 동작이라고 생각합니다.

에 대한 정책 활성 , 비활성모든 다른 사용자는 NX를 통해 연결되어있을 때 그래서 당신이 아닌, 다른 활성 (로컬 콘솔에 활성 세션에서 클라이언트가), 나 비활성 (로컬 콘솔에 비활성 세션에서 클라이언트),하지만 당신은 같은 결과를 모든 사용자

명령을 사용하여 다른 유형의 사용자에 대한 정책 제어에서 조치의 기본 정책을 볼 수 있습니다.

pkaction --verbose

보시다시피, Any 유형의 사용자는 활성 사용자와 비교하여 제한됩니다.

이를 해결하기 위해 기본 정책을 수정할 수 있습니다. 다음에서는 awk 스크립트를 제안하여 올바른 위치에 배치 할 정책 키트 파일을 만듭니다. 이것은 스크립트입니다 :

#!/usr/bin/awk -f

/^[^ ]/ {
  action = substr($0, 1, length($0) - 1)
}
/^ / {
  if ($1 == "description:") {
    $1 = ""
    description = substr($0, 2)
    if (description == "")
      description = action
  } else if ($1 == "implicit") {
    if ($2 == "any:")
      any = $3
    else if ($2 == "inactive:")
      inactive = $3
    else if ($2 == "active:") {
      active = $3
      print ""
      print "[" description "]"
      print "Identity=unix-group:admin"
      print "Action=" action
      print "ResultActive="   active
      print "ResultInactive=" active
      print "ResultAny="      active
    }
  }
}

전화한다고 가정 해 봅시다 create-policy. 실행 파일로 만들고 스크립트를 실행하십시오.

pkaction --verbose | ./create-policy > local.pkla 

그런 다음 결과 파일을 이동하십시오.

sudo mv local.pkla /var/lib/polkit-1/localauthority/50-local.d/

이제 로컬 세션 사용자와 동일한 권한이 있어야합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.