@@ -180,7 +180,7 @@ <h2 id="install">Install</h2>
180
180
< p > If you don't already have node.js and npm, clearly you need those, so follow
181
181
the steps at < a href ="http://nodejs.org "> nodejs.org</ a > and < a href ="http://npmjs.org "> npmjs.org</ a > ,
182
182
respectively. After that, run:</ p >
183
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> npm install ldapjs</ span >
183
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> npm install ldapjs</ span >
184
184
</ code > </ pre >
185
185
< p > Rather than overload you with client-side programming for now, we'll use
186
186
the OpenLDAP CLI to interact with our server. It's almost certainly already
@@ -198,7 +198,7 @@ <h2 id="install">Install</h2>
198
198
</ code > </ pre >
199
199
< p > And run that. Doing anything will give you errors (LDAP "No Such Object")
200
200
since we haven't added any support in yet, but go ahead and try it anyway:</ p >
201
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
201
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
202
202
</ code > </ pre >
203
203
< p > Before we go any further, note that the complete code for the server we are
204
204
about to build up is on the < a href ="examples.html "> examples</ a > page.</ p >
@@ -249,14 +249,14 @@ <h2 id="bind">Bind</h2>
249
249
have one handler in the chain, but it's good habit to always do that, so if you
250
250
add another handler in later you won't get bit by it not being invoked.</ p >
251
251
< p > Blah blah, let's try running the ldap client again, first with a bad password:</ p >
252
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w foo -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
252
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w foo -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
253
253
254
254
ldap_bind: Invalid credentials (49)
255
255
matched DN: cn=root
256
256
additional info: Invalid Credentials
257
257
</ code > </ pre >
258
258
< p > And again with the correct one:</ p >
259
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
259
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
260
260
261
261
No such object (32)
262
262
Additional information: No tree found for: o=myhost
@@ -378,7 +378,7 @@ <h2 id="search">Search</h2>
378
378
});
379
379
</ code > </ pre >
380
380
< p > And try running:</ p >
381
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > cn=root</ span >
381
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > cn=root</ span >
382
382
dn: cn=root, ou=users, o=myhost
383
383
cn: root
384
384
uid: 0
@@ -389,14 +389,14 @@ <h2 id="search">Search</h2>
389
389
objectclass: unixUser
390
390
</ code > </ pre >
391
391
< p > Sweet! Try this out too:</ p >
392
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
392
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > objectclass=*</ span >
393
393
...
394
394
</ code > </ pre >
395
395
< p > You should have seen an entry for every record in /etc/passwd with the second.
396
396
What all did we do here? A lot. Let's break this down...</ p >
397
397
< h3 id ="what-did-i-just-do-on-the-command-line "> What did I just do on the command line?</ h3 >
398
398
< p > Let's start with looking at what you even asked for:</ p >
399
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > cn=root</ span >
399
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > cn=root</ span >
400
400
</ code > </ pre >
401
401
< p > We can throw away < code > ldapsearch -H -x -D -w -LLL</ code > , as those just specify the URL
402
402
to connect to, the bind credentials and the < code > -LLL</ code > just quiets down OpenLDAP.
@@ -447,7 +447,7 @@ <h3 id="the-code">The code</h3>
447
447
shell set to < code > /bin/false</ code > and whose name starts with < code > p</ code > (I'm doing this
448
448
on Ubuntu). Then, let's say we only care about their login name and primary
449
449
group id. We'd do this:</ p >
450
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > < span class ="hljs-string "> "(&(shell=/bin/false)(cn=p*))"</ span > cn gid</ span >
450
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b < span class ="hljs-string "> "o=myhost"</ span > < span class ="hljs-string "> "(&(shell=/bin/false)(cn=p*))"</ span > cn gid</ span >
451
451
dn: cn=proxy, ou=users, o=myhost
452
452
cn: proxy
453
453
gid: 13
@@ -529,11 +529,11 @@ <h2 id="add">Add</h2>
529
529
description: Created via ldapadd
530
530
</ code > </ pre >
531
531
< p > Now go ahead and invoke with:</ p >
532
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapadd -H ldap://localhost:1389 -x -D cn=root -w secret -f ./user.ldif</ span >
532
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapadd -H ldap://localhost:1389 -x -D cn=root -w secret -f ./user.ldif</ span >
533
533
adding new entry "cn=ldapjs, ou=users, o=myhost"
534
534
</ code > </ pre >
535
535
< p > Let's confirm he got added with an ldapsearch:</ p >
536
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -LLL -x -D cn=root -w secret -b < span class ="hljs-string "> "ou=users, o=myhost"</ span > cn=ldapjs</ span >
536
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapsearch -H ldap://localhost:1389 -LLL -x -D cn=root -w secret -b < span class ="hljs-string "> "ou=users, o=myhost"</ span > cn=ldapjs</ span >
537
537
dn: cn=ldapjs, ou=users, o=myhost
538
538
cn: ldapjs
539
539
uid: 1001
@@ -637,7 +637,7 @@ <h2 id="modify">Modify</h2>
637
637
-
638
638
</ code > </ pre >
639
639
< p > And then run the OpenLDAP CLI:</ p >
640
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapmodify -H ldap://localhost:1389 -x -D cn=root -w secret -f ./passwd.ldif</ span >
640
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapmodify -H ldap://localhost:1389 -x -D cn=root -w secret -f ./passwd.ldif</ span >
641
641
</ code > </ pre >
642
642
< p > You should now be able to login to your box as the ldapjs user. Let's get
643
643
the last "mainline" piece of work out of the way, and delete the user.</ p >
@@ -672,7 +672,7 @@ <h2 id="delete">Delete</h2>
672
672
});
673
673
</ code > </ pre >
674
674
< p > And then run the following command:</ p >
675
- < pre > < code class ="language-shell "> < span class ="hljs-meta "> $ </ span > < span class ="language-bash "> ldapdelete -H ldap://localhost:1389 -x -D cn=root -w secret < span class ="hljs-string "> "cn=ldapjs, ou=users, o=myhost"</ span > </ span >
675
+ < pre > < code class ="language-shell "> < span class ="hljs-meta prompt_ "> $ </ span > < span class ="language-bash "> ldapdelete -H ldap://localhost:1389 -x -D cn=root -w secret < span class ="hljs-string "> "cn=ldapjs, ou=users, o=myhost"</ span > </ span >
676
676
</ code > </ pre >
677
677
< h1 id ="where-to-go-from-here "> Where to go from here</ h1 >
678
678
< p > The complete source code for this example server is available in
0 commit comments