歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 成功解決gnome鎖定屏幕後返回時不提示輸入密碼的問題

成功解決gnome鎖定屏幕後返回時不提示輸入密碼的問題

日期:2017/2/28 17:33:30   编辑:Linux教程
我的Ubuntu 7.04在鎖定屏幕後,動一動鼠標就直接返回桌面,不提示輸入密碼。我登錄時用的不是root,是普通用戶。

  在網上查到gnome裡鎖定屏幕用的是以下命令:

  gnome-screensaver-command --lock

  而gnome的屏保會調用gnome-screensaver-dialog來提示密碼,於是找到它運行了一下:

  /usr/lib/gnome-screensaver/gnome-screensaver-dialog

  ** (gnome-screensaver-dialog:11152): WARNING **: Screen locking disabled: running under GDM
  RESPONSE=OK

  看樣子它認為screen locking沒有啟用,但是不知道原因,只能研究一下源碼了。在gnome-screensaver的svn浏覽了一下gnome-screensaver-dialog.c的代碼,發現下面相關的幾行:

  if (getenv ("RUNNING_UNDER_GDM")) {
   if (nolock_reason) {
   *nolock_reason = g_strdup ("running under GDM");
   }
   return FALSE;
  }

  看來只要設定了 RUNNING_UNDER_GDM 這個環境變量就不會提示密碼,而我的環境裡的確有這個變量:

  echo $RUNNING_UNDER_GDM
  yes

  知道原因後就簡單了。我不清楚 RUNNING_UNDER_GDM 是在什麼地方設定的,也不知道還有沒有其他東西會用到它,所以只是修改了鎖屏相關的東西。

  先把原來的gnome-screensaver改個名字:

  mv gnome-screensaver gnome-screensaver.orig

  在/usr/bin下新建一個gnome-screensaver,輸入以下內容:

  #!/bin/sh

  # 先清除 RUNNING_UNDER_GDM 變量
  unset RUNNING_UNDER_GDM
  # 然後再運行原來的gnome-screensaver
  gnome-screensaver.orig $@

  保存後改成可執行:

  chmod +x gnome-screensaver

  殺掉gnome-screensaver進程再重新運行,或者直接重啟系統。OK,現在終於可以鎖定屏幕了!

  RUNNING_UNDER_GDM這個變量好象是gnome為了解決live cd鎖屏後無法返回的問題而設的,因為live cd的用戶沒有密碼,一旦鎖屏就無法解鎖。我不知道正常安裝的系統裡面還有沒有這個變量,我這裡是用gnix_oag大俠的方法硬盤安裝的,有可能和這種安裝方式有關。
Copyright © Linux教程網 All Rights Reserved