如何在Windows NT中以程式設計方式管理使用者許可權

2021-08-11 05:56:25 字數 1295 閱讀 5367

在windows nt中,許可權用於提供與自由訪問控制不同的訪問控制手段。

系統管理員使用許可權來控制哪些使用者/組能夠操縱系統的各個方面。

應用程式可能會在更改系統資源(如系統時間)或關閉系統時使用許可權。

使用者管理器工具可用於授予和撤銷帳戶的許可權。

windows nt 3.51提供的功能允許開發人員以程式設計方式管理特權。

此功能通過lsa(本地安全機構)提供。

從lsa中受益的應用程式的乙個例子是服務安裝程式。

如果服務配置為在使用者帳戶下執行,則該帳戶有必要具有seservicelogonright「登入即服務」許可權。

本文討論如何利用lsa來授予和撤銷使用者和組的許可權。

管理使用者許可權可以使用以下步驟以程式設計方式實現:

用lsaopenpolicy()開啟目標機器上的策略。

要授予許可權,請使用policy_create_account和policy_lookup_names許可權開啟策略。

要撤消許可權,請開啟policy_lookup_names許可權的政策。

獲取表示感興趣的使用者/組的sid(安全識別符號)。

lookupaccountname()和lsalookupnames()api可以從帳戶名稱獲取sid。

呼叫lsaaddaccountrights()將許可權授予由提供的sid表示的使用者。

呼叫lsaremoveaccountrights()從所提供sid代表的使用者中撤銷許可權。

用lsaclose()關閉策略。

要成功授予和撤銷許可權,呼叫者需要成為目標系統上的管理員。

lsa api lsaenumerateaccountrights()可用於確定已授予某個帳戶的特權。

lsa api lsaenumerateaccountswithuserright()可用於確定哪些帳戶已被授予指定的許可權。

這些lsa api的文件和標頭檔案在windows 32 sdk的mstools \ security目錄中提供。

在最新版本的win32 sdk中,標題出現在mstools \ samples \ win32 \ winnt \ security \ include目錄中,文件位於.... \ security \ lsasamp \ lsaapi.hlp中。

注意:這些lsa api目前僅作為unicode實現。

此示例將授予seservicelogonright許可權到argv [1]上指定的帳戶。

這個示例依賴於這些導入庫

advapi32.lib(用於lsa***)

user32.lib(用於wsprintf)

這個示例將正確編譯ansi或unicode。

如何在Sitecore CMS中開啟內容編輯器

在sitecore中開發 時,大多數專案管理都來自內容編輯器。建立,刪除,修改,移動,發布,排序和檢視專案只是可以在content editor介面中處理的眾多任務中的一小部分。由於內容編輯器對於管理sitecore站點非常重要,因此有多種方法可以開啟內容編輯器介面。單擊啟動板上的 內容編輯器 按鈕...

如何在tornado中以非同步的方式呼叫同步函式

tornado相較於flask入門難,精通更難,用兩種框架都寫乙個最簡單的帶有time.sleep的入門dome就會發現區別,同時進來多個請求flask就不會阻塞 雖然也是單程序但flask會使用selet復用或者多執行緒方式避免給請求阻塞的感覺 而torndao就會發生阻塞 單程序單執行緒,乙個乙...

如何在linux下以RPM安裝Oracle 客戶端

二 以root使用者安裝 rpm ivh oracle instantclient11.2 basic 11.2.0.3.0 1.x86 64.rpm rpm ivh oracle instantclient11.2 sqlplus 11.2.0.3.0 1.x86 64.rpm 三 配置 vim ...