LDAPVI(1)

πŸ“¦
version 1.7 Β· 2 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable

πŸ’… 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, --host URL β€” the server, bestie. the main character.
  • -D, --user USER β€” search filter or DN: the user to bind as. [1] also sets --bind simple.
  • -w, --password SECRET β€” 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-secprops P β€” 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-authcid AC β€” SASL authentication identity.
  • -X, --sasl-authzid AZ β€” SASL authorization identity.
  • -Y, --sasl-mech MECH β€” SASL mechanism.

⭐ Search parameters ⭐

  • -b, --base DN β€” the search base. your starting point, your home base 🏠
  • -s, --scope SCOPE β€” search scope. one of base|one|sub. literally one of those three, no other options.
  • -S, --sort KEYS β€” 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, --class OBJCLASS β€” class to add. can be repeated (stack 'em πŸ’…) and implies -A.
  • --config β€” print parameters in ldap.conf syntax.
  • -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 is UTF-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, --read DN β€” 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 a BASE configuration 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 πŸ«Άβœ¨πŸŽ€