Windows® 7 提供一個簡單的機制,可讓您使用標準的使用者權限來執行一般使用者帳戶,同時不需要系統管理員權限就能執行一般工作,例如安裝印表機驅動程式或連線到無線網路。這項重大的改變將透過防止惡意軟體 (也稱為惡意程式) 和搜尋組件損害全公司的檔案和設定,協助提供作業系統層級的安全性。

使用者帳戶控制 (UAC) 是以最少權限的安全性理論為基礎,這種概念指出使用者只要具有執行指派工作所需的絕對最少權限即可。與 UAC 相容的 UNIX 應用程式子系統做了一些改變,包括最少權限使用者帳戶 (LUA) 的使用。

使用者帳戶控制

使用者帳戶控制是 Windows 7 中的安全性功能,這是 Windows Vista 引進的功能。

使用者帳戶控制的主要目標就是透過要求所有使用者以標準使用者模式執行以及限制對已授權處理程序進行系統管理員層級的存取,以降低 Windows 7 作業系統暴露資訊安全弱點或遭受攻擊的情況,。這種限制可將使用者進行變更所造成的電腦不穩定,或是意外遭受網路病毒攻擊 (由已感染其電腦、且未被偵測到的惡意軟體散播) 等可能性降到最低。

根據預設值,Windows 7 會以標準使用者的身分執行每一個應用程式,即使目前的使用者是以 Administrators 群組成員的身分登入也一樣。相反地,當使用者嘗試啟動的應用程式已標示成需要系統管理員權限時,Windows 7 會提示他們是否要這麼做。惟有以系統管理員權限執行應用程式,才能修改系統與全域設定和行為。

如需使用者帳戶控制的相關資訊,請參閱 Microsoft 網站上的主題<瞭解與設定 Windows Vista 中的使用者帳戶控制>(https://go.microsoft.com/fwlink/?LinkId=70242 (可能為英文網頁))。

UNIX 應用程式子系統的使用者帳戶控制及最少權限

當 Administrators 群組的 UNIX 應用程式子系統使用者啟動應用程式、殼層或其他工作時,會在標準使用者的安全性內容中執行那些應用程式。

下列範例說明「使用者帳戶控制」如何在不提高權限的情況下,防止隸屬於 Administrators 群組之成員的使用者執行系統管理工作。

使用者 A 是 Administrators 群組的成員,而且想要在 / (根) 目錄中建立名為 test 的新目錄。惟有 Administrators 群組的成員允許在根目錄中建立新目錄。然而,雖然使用者 A 是 Administrators 群組的成員,但由於 LUA 限制,所以該使用者不能建立新目錄。如此使用者 A 會使用提高的權限開啟 Korn 殼層,並允許在根目錄中建立 test 目錄。

若要使用提高的權限執行應用程式或執行工作,請參閱下列程序。

如何以系統管理員身分執行應用程式

有了 UNIX 應用程式子系統及其已安裝的工具和公用程式的下載套件,就可以利用兩個方法來以系統管理員的身分執行應用程式。

使用 Windows 介面

使用 UNIX 命令列

使用 Windows 介面

若要在需要系統管理權限的 Windows 使用者介面上執行應用程式,請執行下列步驟。

若要在 Windows 介面中以系統管理員身分執行應用程式
  1. 在應用程式執行檔上按一下滑鼠右鍵。

  2. 按一下捷徑功能表上的 [以系統管理員身分執行]

使用 UNIX 命令列

若要在需要系統管理權限的 UNIX Korn 殼層環境中執行應用程式,請執行下列步驟。

若要在 Korn 殼層中以系統管理員身分執行應用程式
  1. 依序按一下 [開始][所有程式][UNIX 應用程式子系統],然後指向 [Korn 殼層]

  2. [Korn 殼層] 上按一下滑鼠右鍵,然後按一下 [以系統管理員身分執行]

  3. 當系統提示您是否允許殼層以系統管理員身分執行時,按一下 [是]

  4. 執行需要系統管理員權限的程式。

  5. 執行完畢需要提高之權限的應用程式後,關閉殼層工作階段。

    若要在不需要系統管理員權限的 UNIX 殼層環境中執行其他工作,不必使用 [以系統管理員身分執行] 命令就可以直接開啟新的殼層階段作業。

EnableSuToRoot 登錄機碼

預設會啟用使用者帳戶控制。啟用 [使用者帳戶控制] 後,模擬另一位屬於 Administrators 群組成員之使用者的任何應用程式或工作 (例如,使用 sucronlogin 公用程式、setuid 以及任何 setuidexec_asuser 系列呼叫),一律會在標準使用者帳戶的安全性內容中執行。

附註

當應用程式模擬標準使用者時,它會具有標準使用者的完整安全性內容。如需標準使用者的相關資訊,請參閱 Microsoft 網站上的主題<最少權限環境中之應用程式開發人員的最佳作法與指導方針>(https://go.microsoft.com/fwlink/?LinkId=70243 (可能為英文網頁))。

使用預設值時,應用程式無法模擬根使用者。修改登錄機碼 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SUA\EnableSuToRoot 可以控制這個行為。

如何修改 EnableSuToRoot 登錄機碼

重要

Administrator 帳戶在 Windows 7 和 Windows Server 2008 R2 中預設為停用,來協助防止未經授權或惡意使用者存取電腦和資料,使用者如果要模擬根使用者或系統管理員,則必須啟用系統管理員帳戶。因為 Administrator 帳戶必須先啟用才能夠變更 EnableSuToRoot 登錄機碼的設定,因此會緊接著完成這個工作的程序。您必須是本機電腦的 Administrators 群組成員,才能夠完成下列程序。

啟用 Administrator 帳戶
  1. 按一下 [開始],在 [電腦] 上按一下滑鼠右鍵,然後按一下 [管理]

  2. [電腦管理] 嵌入式管理單元的階層窗格中,開啟 [本機使用者和群組]

  3. 選取 [使用者]

  4. 在結果窗格中,在 [系統管理員] 上按一下滑鼠右鍵,然後按一下 [內容]

  5. 清除 [帳戶已停用] 選項的核取方塊。

  6. 按一下 [確定]

  7. 關閉 [內容] 視窗,然後關閉 [電腦管理] 嵌入式管理單元。

安裝 UNIX 應用程式子系統後,請執行下列步驟來變更 EnableSuToRoot 登錄機碼的設定。

若要變更 EnableSuToRoot 登錄機碼的設定
  1. 按一下 [開始],於 [開始搜尋] 文字方塊中按一下,然後輸入 regedit 即可開啟 [登錄編輯程式]。

  2. 在階層窗格中,開啟 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SUA

  3. 在結果窗格中,按兩下 [EnableSuToRoot]

  4. [數值資料] 方塊中,輸入 0 以禁止模擬根使用者,或輸入 1 以允許模擬。

    預設值為 0。

  5. 按一下 [確定]

  6. 關閉 [登錄編輯程式],並且儲存您的變更 (若出現提示)。

將此機碼的值設為 0 (預設值) 時,即不允許模擬根使用者。將值設為 1 時,即允許模擬根使用者。當應用程式模擬根使用者或系統管理員帳戶時,應用程式會具有根 (系統管理員) 使用者的系統管理安全性內容。

Setuid 與系統管理特殊權限

如果使用者是 Administrators 群組的成員,嘗試將應用程式標示為 setuid 屬性,只有在系統管理安全性內容中允許執行應用程式和執行工作時,才能順利進行。

以下是如何標示二進位檔案 /bin/regpwd (通常會以 setuid 屬性標示) 的範例:

  1. 使用本主題說明的提高權限來開啟 Korn 殼層 (ksh)。

  2. 輸入 chmod +s /bin/regpwd,然後按 ENTER

  3. 輸入 exit 以關閉 ksh 工作階段。

請參閱