LDAPVI(1)
π LDAPVI(1) β bestie's guide to the LDAP client β¨
okay so this is ldapvi from the User Commands manual β yes, the whole page lives in section 1, and yes, it's iconic. grab a snack, we're learning LDAP together π«Ά
β¨ NAME β¨
ldapvi β it's an LDAP client, periodt. π
πΈ SYNOPSIS πΈ
ldapvi [OPTION]... [FILTER] [AD]...
π¦ DESCRIPTION π¦
π Quickstart π
ldapvi --discover --host HOSTNAME
that's it, that's the vibe. it performs an LDAP search, and then you update the results using a text editor. literally just open your editor and slay. β¨
π Other usage π
ldapvi --out [OPTION]... [FILTER] [AD]...β print entries. that's the whole job, no notes. πldapvi --in [OPTION]... [FILENAME]β load change records.ldapvi --delete [OPTION]... DN...β edit a delete record πldapvi --rename [OPTION]... DN1 DN2β edit a rename record. two DNs, one glow-up.
π Connection options π
-h,--hostURL β the server, bestie. the main character.-D,--userUSER β search filter or DN: the user to bind as. [1] also sets--bind simple.-w,--passwordSECRET β the password (and it's also valid for SASL, no cap).--bind [simple,sasl]β disable or enable SASL. pick a lane π«Ά--bind-dialog [never,auto,always]β the interactive login dialog. yes it's a vibe check for your login.
π§ SASL options π§ (these parameters set --bind sasl)
-I,--sasl-interactiveβ sets--bind-dialog always. it's giving talk to me.-O,--sasl-secpropsP β SASL security properties.-Q,--sasl-quietβ sets--bind-dialog never. not me being silent π-R,--sasl-realmβ R SASL realm. yes, that's how the page lists it, i don't make the rules. π-U,--sasl-authcidAC β SASL authentication identity.-X,--sasl-authzidAZ β SASL authorization identity.-Y,--sasl-mechMECH β SASL mechanism.
β Search parameters β
-b,--baseDN β the search base. your starting point, your home base π-s,--scopeSCOPE β search scope. one ofbase|one|sub. literally one of those three, no other options.-S,--sortKEYS β sort control, and it's critical.
π Miscellaneous options π
--addβ (only with--in,--ldapmodify: ) treat attrval records as new entries to add. new entry, new me β¨-o,--classOBJCLASS β class to add. can be repeated (stack 'em π ) and implies-A.--configβ print parameters inldap.confsyntax.-c,--continueβ ignore LDAP errors and continue processing. we move on, we don't dwell π¦--deleteoldrdnβ (only with--rename: ) delete the old RDN. out with the old π-a,--derefβnever|searching|finding|always-d,--discoverβ auto-detect naming contexts. [2] detective mode π-A,--emptyβ don't search, start with an empty file. see-o. blank canvas energy π¨--encoding [ASCII|UTF-8|binary]β the encoding to allow. default isUTF-8.-H,--helpβ this help. hi, hello, welcome π«Ά--ldap-confβ always read libldap configuration. always. no exceptions.-m,--mayβ show missing optional attributes as comments.-M,--managedsaitβ manageDsaIT control, and yes it's critical.--noquestionsβ commit without asking for confirmation. bold. iconic. slightly scary π-!,--noninteractiveβ never ask any questions. ever. periodt.-q,--quietβ disable progress output. shhh π€«-R,--readDN β same as-b DN -s base '(objectclass=*)' + *-Z,--starttlsβ require startTLS. security slay π₯--tls [never|allow|try|strict]β level of TLS strictess. (that spelling is straight from the page, i'm not touching it π)-v,--verboseβ note every update. tell me everything bestie π
π« Shortcuts π«
--ldapsearchβ short for--quiet --out--ldapmodifyβ short for--noninteractive --in--ldapdeleteβ short for--noninteractive --delete--ldapmoddnβ short for--noninteractive --rename
Environment variables: VISUAL, EDITOR, PAGER. those three, know them, love them π
[1] user names can be specified as distinguished names:
uid=foo,ou=bar,dc=acme,dc=com
or search filters:
(uid=foo)
note the use of parenthesis β which can be omitted from search filters usually, but are required here. for this searching bind to work, your client library must be configured with appropriate default search parameters. no shortcuts on this one, fr fr.
[2] repeat the search for each naming context found and present the concatenation of all search results.
β οΈ conflicts with--base. also, with--config, show aBASEconfiguration line for each context.
a special (offline) option is --diff, which compares two files and writes any changes to standard output in LDIF format. offline era π
π REPORTING BUGS π
report bugs to "ldapvi@lists.askja.de". they want to hear from you, bestie.
π± GETTING STARTED π±
assuming a suitably configured LDAP library, run ldapvi without arguments to see all entries available. no args, all the tea β
otherwise, try ldapvi -h HOSTNAME --discover to query the ROOT DSE for available naming contexts.
once that works, run ldapvi -h HOSTNAME --discover --config to generate sample configuration that can be pasted into ~/.ldaprc or /etc/ldap/ldap.conf. paste and prosper π
π FILE FORMAT π
ldapvi uses an LDIF-like syntax, but not standard LDIF. please refer to http://www.lichteblau.com/ldapvi/manual.xml#syntax β don't assume, go read π
π BUGS π
please report bugs to <ldapvi@lists.askja.de>. same address energy, different punctuation, that's just how it is π
π₯ SEE ALSO π₯
http://www.lichteblau.com/ldapvi/manual.xml
π AUTHOR π
David Lichteblau <david@lichteblau.com> β the icon, the legend π
and that's the whole page, bestie π written by the author above, this here's ldapvi version 1.7, dated May 2007 β old but still absolutely eating. bye, love u, go bind responsibly π«Άβ¨π
π¦ where this page comes from
- alpine 3.22: ldapvi-doc 1.7-r16 Β· GPL-2.0-or-later
- alpine 3.23: ldapvi-doc 1.7-r16 Β· GPL-2.0-or-later
- alpine 3.24: ldapvi-doc 1.7-r16 Β· GPL-2.0-or-later
- epel 10: ldapvi 1.7-52.el10_2 Β· GPL-2.0-or-later
- epel 9: ldapvi 1.7-41.el9 Β· GPLv2+
- fedora 43: ldapvi 1.7-52.fc43 Β· GPL-2.0-or-later
- fedora 44: ldapvi 1.7-54.fc44 Β· GPL-2.0-or-later
- nixos 26.05: ldapvi-unstable 2012-04-28
- nixpkgs unstable: ldapvi 1.7-unstable-2010-12-14
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms