使用ldapmodify批量修改目錄節點屬性

2021-04-06 21:11:44 字數 1791 閱讀 2862

問題:在ou=people,o=abc,dc=super, dc=com樹下放了10000個使用者節點(objectclass=inetorgperson, objectclass=inetuser)。其中有超過9000個使用者的屬性inetuserstatus的值為不正確的"true",需要更正為 "active"。

解決方法:

由 於需要修改的目錄節點數目十分龐大,手工書寫修改命令不太可行。所以,需要考慮用工具生成。考慮到ldapsearch的輸出可以指定屬性,可以在 ldapsearch輸出的基礎上加以修改得到最終的ldif檔案。首先,利用ldapsearch得到所有需要修改的目錄節點的dn,並儲存到檔案 need_chg.dn:

ldapsearch -d "cn=directory manager" -w password -b "ou=people,o=abc,dc=super,dc=com" "(inetuserstatus=true)" dn > need_chg.dn

得到的need_chg.dn檔案示例如下:

uid=xulingyan,ou=people,o=abc,dc=super,dc=com

uid=tn0001,ou=people,o=abc,dc=super,dc=com

uid=tn0002,ou=people,o=abc,dc=super,dc=com

uid=tn0003,ou=people,o=abc,dc=super,dc=com

uid=tn0004,ou=people,o=abc,dc=super,dc=com

然後編寫sed指令碼在每個dn前面加上"dn: ",並加上以下行:

changetype: modify

replace: inetuserstatus

inetuserstatus: active

修改後的need_chg.dn檔案示例如下:

dn: uid=xulingyan,ou=people,o=abc,dc=super,dc=com

changetype: modify

replace: inetuserstatus

inetuserstatus: active

dn: uid=tn0001,ou=people,o=abc,dc=super,dc=com

changetype: modify

replace: inetuserstatus

inetuserstatus: active

dn: uid=tn0002,ou=people,o=abc,dc=super,dc=com

changetype: modify

replace: inetuserstatus

inetuserstatus: active

dn: uid=tn0003,ou=people,o=abc,dc=super,dc=com

changetype: modify

replace: inetuserstatus

inetuserstatus: active

dn: uid=tn0004,ou=people,o=abc,dc=super,dc=com

changetype: modify

replace: inetuserstatus

inetuserstatus: active

該sed指令碼應該如下:

/^uid=/

最後,執行ldapmodify -h host -p port -d

-w

-f

即可。

總結:

熟悉ldif檔案格式並有效運文字處理工具可以高效率地解決一些看似棘手的難題。

Hibernate怎樣實現批量修

hibernate的批量刪除對於提高hibernate效能來說確實很重要,所以我總結整理了一下,大體的實現 是 批量修改 session session sessionfactory.opensession transaction tx session.begintransaction string...

使用objdump objcopy檢視與修改符號表

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!我們在 linux 下執行一個程式,有時會無法啟動,報缺少某某庫。這時需要檢視可執行程式或者動態庫中的符號表,動態庫的依賴項,linux 有現成的工具可用 objdump 有時我們拿到一個靜態庫,想呼叫其中的函式,而某些函式作用域非全域性,也可以通...

用Excel函式簡化批量匯入AD使用者及修改密碼

近期公司的ad和exchange專案如預期的進展還不錯,趕上ad使用者的批量匯入,5k使用者,工作量很大哦,還好無意間看到一篇blog,講藉助excel函式簡化 的輸入操作,試用了下還不錯,修改後分享給大家,增加 操作哦,原blog是沒有的哦。廢話不多說轉入正題。通過指令碼的方式批量的匯入ad賬戶,...

利用Matlab進行檔案批量複製 剪下和修改檔名

close all clear all clc 目的檔案目錄 dst path t c users fatflower desktop 2018bbc精聽 for i 1 90 此處是根據資料夾中的檔案個數所確定的 切換到目標檔案 cd h 聽bbc學英語原聲新聞年度合集2018版 音訊 num2s...

關於exchange2003使用owa修改使用者口令

在exchange2003中,通過owa方式訪問自己的郵箱,要修改使用者密碼時資料需要有https的加密支援,具體過程看以下配置 1 在exchange伺服器上修改登錄檔,讓更改密碼項出現在owa訪問郵箱的選項裡。開始 執行 regedit 確定,開啟登錄檔,找到disablepassword項把1...