マシンがヘッドレスの場合、ユーザーは特権を失います


12

問題の核心は、次のとおりです。 ANY GNOMEセッションは、実際の物理的/ネイティブ表示の岩下座って、-OR(。すなわちNXserverのシャドウモード)という表示をシャドウイングではない-障害のある権限を持っています。ルートとして実行する場合でも!

VNC /非シャドウNXセッションの問題のある動作を修正する方法に関するコメントはありますか?


久しぶりにホームのUbuntuヘッドレスサーバーをアップグレードしていますが、以前のUbuntuバージョンには存在していなかった多くの問題があります。

いくつかの詳細:

  • 私はubuntu-11.04-server-amd64.isoから始めて、その上にubuntu-desktopをインストールしました。
  • uname -a:Linux MiddleEarth 2.6.38-8-server#42-Ubuntu SMP Mon Apr 11 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux
  • ハードウェアはIntel D920、2GB Ram、GFXは一部のファンレスnvidia 6600、3xGigabit、1x100mbit、モニターなし、キーボード、マウスが接続されています。

ラウンド1

モニターを接続した状態でテスト/セットアップを行っている間、そのモニターの前に座っているときも、デスクトップマシンから(Vinoに)VNCで接続しているときも、すべてが桃色でした。

問題が発生してもモニターなしでは:

[未解決/ドロップ]

非常に最初の問題は、VINOた頑固さとGDMの間に/前負荷に好きではありません。しかし、これはヘッドレスシステムであるため、デフォルトでXで開始する(つまり、初期化レベルを変更する)必要はまったくありません。しかし、古いubuntuバージョン(v9.04だと思う)でこれを行うのは非常に簡単だとはっきりと覚えています。そしてそれはうまくいきました。もうそうじゃない!?...とにかく、私はそのアイデアを完全に落としました。

[解決済み]

それから、Unity /エフェクトがVNCをいじりました不正行為で解決しました)。

[未解決]

もともとNXserverに切り替えたのは、おそらく次の問題がtightvncまたはvinoの問題であるが、そのような運がないことを望んでいたからです。(注:round2を読んでください)

VNC(またはNXserver)経由でリモート接続すると、ユーザーアカウントでHDDのマウント/アンマウントができなくなります。

スクリーンショット:750GB_RAID1をマウントできません

VNC(またはNXserver)を介してリモート処理する場合、ユーザーアカウントは一部の特権構成オプションにアクセスできません。
いくつかの例を次に示します。

  • 「システム->管理->ユーザーとグループ」で何も実行できません(つまり、「ユーザーを追加」または「詳細設定」)。
  • 「システム->管理->ログイン画面」で「ロック解除」を使用できません。
  • gpartedは、ファイルシステムに関する情報の取得に失敗します。
  • など(他のさまざまなadmin / configダイアログも適切に機能しません)

これは、実際の物理的なモニターデバイスが接続されていない場合に、ユーザー特権が適切に割り当てられていないことに関係があると推測できます。
「なぜ」これがubuntu 11.04で起こるのか、それが頭のないとき、私を逃れます。私は、ubuntuの以前のバージョンでこの動作を覚えていません。

HDDのマウントの問題は、内部/静的hddの問題ではありません(とにかく静的なので、fstabに追加するだけです)。しかし、リムーバブルUSBメディアには本当に大きな痛みがあります。

残りの問題、私は修正する方法を理解していません...
私はあなたが考えていることを知っています... ssh、sudo suにログインし、rootでvncserverを完全に実行しますか?

スクリーンショット:(rootとして)gpartedはfs情報を見つけられません

サプライズサプライズ!rootのGUIも壊れています。gpartedは情報を取得できず、user&groupsは完全にグレー表示されます(これは通常のユーザーとは異なる動作です)。奇妙なことに、ログイン画面の管理プログラムはうまく機能しているようです。


ラウンド2

(注:これが結果に影響を与えたかどうかはわかりません。ラウンド1とラウンド2の間のある時点で、このスレッドの投稿#21と#24で述べた変更を適用しました)

通常のtightvnc / NXServerセッションは同じ動作をしますが、...

[部分的な解決策/実際の問題はまだ残っています]

NXClient接続設定で、「シャドウ」モードを選択すると(シャドウがネイティブディスプレイ、つまりデスクトップシャドウイングにアタッチします)...

このセッション内ではすべてが完璧に機能します!

私が気づいたことの1つは、すぐにキーリングパスワードを要求することです...おそらく、混乱全体がgnomeが使用するキーリングシステムと関係があるのでしょうか?

ただし、通常の(シャドウではない)NX接続、または通常のvncで接続すると、同じ問題が発生します。

PS round1とround2を書いたとき、その間に2日間ありました(ローカルでtxtファイルに保存していました)。私はさまざまなサジェスチョンをテストして、何が機能するかを確認していました。そのため、その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を取得しました!:D

残念ながら、クリップボードは「シャドウ」セッションでは機能しません(他の/通常のセッションでは正常に機能します)

[編集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

犯人を突き止めました。
新規インストールでテストし、バグであることを確認しました。

バグレポートを提出しました

要するに問題:polkit認証ダイアログは、VNC / NXセッションがあるDISPLAY:1ではなく、DISPLAY:0に表示されます。

回避策、libpam-keyringを使用してログイン時に自動認証することです。
または...スクラッチ、おそらくそれはしないだろう、すべてのポリシーキット設定を 'auth_admin'から 'yes'に変更するとおそらく問題が修正され、もちろんそれはpolicyKitを完全に無効にする... ため息


1
Xorg.confを変更してディスプレイ:0を削除できますか?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/

これで、ローカルセッションユーザーであったのと同じ権利が得られます。


0

NXで同様の問題が発生していて、次のスレッドが見つかりました。

NXを使用しているときにClassicではなくUnityを入手するのはなぜですか?

デスクトップがUnixおよびカスタムに設定されるようにWindows NXクライアントを編集し、次のコマンドを実行するように設定しました。

gnome-session --session=classic-gnome

そして、New Virtual Desktopを選択しました。
その後、行って良かったです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.