当机器无头时,用户不再具有特权


12

核心问题是: 任何不在实际物理/本机显示之上的gnome会话-或对该显示进行阴影处理(即NXserver的阴影模式)-都具有错误的权限。即使以root身份运行!

对解决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开头(即更改init级别),所以有点儿争议。但是,我清楚地记得在较旧的ubuntu版本(我认为v9.04)中很容易做到这一点。而且效果很好;但没有更多了!...反正我完全放弃了这个主意。

[解决了]

然后是Unity / effects搞砸了VNC通过作弊解决)。

[未解决]

我最初切换到NXserver,希望以下问题可能是紧要问题或vino问题,但是没有这种运气。(注:阅读第2轮)

通过VNC(或NXserver)进行远程处理时,我的用户帐户无法安装/卸载HDD。

屏幕截图:无法挂载750GB_RAID1

通过VNC(或NXserver)进行远程处理时,我的用户帐户无法访问某些特权配置选项,
例如:

  • 在“系统->管理->用户和组”中无法执行任何操作(即“添加”用户或“高级设置”)。
  • 无法在“系统->管理->登录屏幕”中使用“解锁”。
  • gparted无法获取有关文件系统的任何信息。
  • 等等。(其他各种管理/配置对话框也无法正常工作)

我只能猜测这与在未连接实际的物理监视器设备时未正确分配用户权限有关。
“为什么”在ubuntu 11.04中发生的原因,当它变得无头时,使我无所适从;我不记得以前版本的ubuntu中的这种行为。

请注意,对于内部/静态硬盘,HDD安装问题不是问题(我将它们添加到fstab中,因为它们始终是静态的)。但是,对于可移动USB介质来说,确实是一个很大的痛苦。

其余的问题,我还没有弄清楚如何解决...
我知道您在想什么...登录ssh,sudo su并在root用户下完全运行vncserver?

屏幕截图:(作为root用户)gparted找不到FS信息

惊喜惊喜!root的gui也被破坏:gparted无法获取信息,user&groups完全变灰(这与常规用户的行为不同)。奇怪的是,登录屏幕管理代理似乎工作正常。


第二回合

(注意:我不知道这是否对结果有所影响。在第1轮和第2轮之间的某个时间点,我应用了该线程中第21和#24条中提到的更改)

常规的tightvnc / NXServer会话具有相同的行为,但是...

[部分解决方案/实际问题仍然存在]

在NXClient连接设置中,当我选择“阴影”模式时(阴影将您附加到本机显示,即桌面阴影)...

在此会话中,一切工作正常!

我注意到的一件事是,它立即要求我输入钥匙圈密码...也许整个混乱都与gnome系统使用的钥匙圈有关?

但是,如果我使用常规的(不是影子)NX连接或常规的vnc连接,则可能会遇到相同的问题。

PS:我写了round1和round2之间有几天(我将其保存在本地的txt文件中)。我正在测试各种建议以查看是否可行,这就是为什么我不确定xorg.conf VNC设备编辑或nomodeset设置是否起作用的原因。

[编辑2011-06-10]

NXServer和GDM

在撰写本文时,我已经将系统设置为自动登录,这就是为什么影子连接只是简单起作用的原因。当我稍后禁用该功能并重新启动系统时,NX给出了一个错误,但是在使用Googling进行了一些调试后,我发现了该线程

这些是我在/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登录到桌面的“ shadow”(本机显示)设置,并获得GDM!:D

不幸的是,剪贴板在“影子”会话中不起作用(它可以在其他/常规对象上正常工作)

[EDIT 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

Answers:


5

我找到了罪魁祸首。
在全新安装上进行了测试,确认是错误。

我提交了错误报告

简而言之,问题是:polkit身份验证对话框将显示在DISPLAY:0而不是VNC / NX会话所在的DISPLAY:1上。

一种解决方法可能是在登录时使用的libpam-钥匙圈自动验证。
或...刮的是,这可能不会做,所有的政策工具包的设置从“auth_admin”只是“是”的变化可能会解决这个问题,这当然会使PolicyKit的实际意义完全... 叹息


1
您可以更改Xorg.conf删除显示:0吗?我认为X甚至没有理由在那里运行。这样VNC / NX可以将DISPLAY设为0:
user606723 2011年

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/

您现在应该具有与本地会话用户相同的权限。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.