2016-01-12 07:17:05 +00:00
|
|
|
Shelldap
|
|
|
|
|
========
|
|
|
|
|
|
|
|
|
|
A handy shell-like interface for browsing LDAP servers and editing their
|
|
|
|
|
content. It keeps command history, has sane autocompletes, credential caching,
|
|
|
|
|
site-wide and individual configs, and it's fun to say.
|
|
|
|
|
Shelldap! Shelldap! Shelldap!
|
|
|
|
|
|
|
|
|
|
Witness!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
2024-12-30 06:48:59 +00:00
|
|
|
% shelldap
|
2016-01-12 07:17:05 +00:00
|
|
|
~ > [ tab ]
|
2024-12-30 06:48:59 +00:00
|
|
|
~ >
|
|
|
|
|
cat clear cp delete env grep id ls move passwd read search touch whoami
|
|
|
|
|
cd copy create edit exit help list mkdir mv pwd rm setenv vi
|
2016-01-12 07:17:05 +00:00
|
|
|
~ > cd ou=People
|
|
|
|
|
ou=People,~ > cat uid=ma[ tab ]
|
|
|
|
|
ou=People,~ > cat uid=mahlon
|
|
|
|
|
|
|
|
|
|
dn: uid=mahlon,ou=People,dc=laika,dc=com
|
|
|
|
|
objectClass: inetOrgPerson
|
|
|
|
|
objectClass: organizationalPerson
|
|
|
|
|
objectClass: person
|
|
|
|
|
objectClass: top
|
|
|
|
|
objectClass: posixAccount
|
|
|
|
|
objectClass: shadowAccount
|
|
|
|
|
objectClass: apple-user
|
|
|
|
|
cn: Mahlon E. Smith
|
|
|
|
|
departmentNumber: Technology - IT
|
|
|
|
|
displayName: Mahlon
|
|
|
|
|
gecos: Mahlon E. Smith
|
|
|
|
|
gidNumber: 200
|
|
|
|
|
givenName: Mahlon
|
|
|
|
|
homeDirectory: /home/m/mahlon
|
|
|
|
|
l: Ghetto
|
|
|
|
|
loginShell: /bin/tcsh
|
|
|
|
|
mail: mahlon@martini.nu
|
|
|
|
|
mobile: 1+8829999005747
|
|
|
|
|
sn: Smith
|
|
|
|
|
title: Manager, Information Systems
|
|
|
|
|
uid: mahlon
|
|
|
|
|
uidNumber: 20933
|
|
|
|
|
userPassword: *
|
|
|
|
|
|
2024-12-30 06:48:59 +00:00
|
|
|
ou=People,~ >
|
2016-01-12 07:17:05 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Downloads
|
|
|
|
|
---------
|
|
|
|
|
|
2022-04-03 23:04:09 +00:00
|
|
|
You can download the latest script
|
2025-06-28 17:03:07 -07:00
|
|
|
[here](https://code.martini.nu/mahlon/shelldap/raw/branch/main/shelldap).
|
2016-01-12 07:17:05 +00:00
|
|
|
|
2024-12-30 06:48:59 +00:00
|
|
|
It is also available via the
|
|
|
|
|
[FreeBSD ports](https://ports.freebsd.org/cgi/ports.cgi?query=shelldap&stype=all&sektion=all) system,
|
|
|
|
|
OS X via [macports](https://trac.macports.org/browser/trunk/dports/net/shelldap/Portfile),
|
|
|
|
|
Debian/Ubuntu via [apt](https://packages.debian.org/shelldap),
|
|
|
|
|
NetBSD's [pkgsrc](http://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/sysutils/shelldap/index.html),
|
|
|
|
|
OpenBSD [ports](https://openports.pl/path/sysutils/shelldap),
|
|
|
|
|
openSUSE's [build service](https://software.opensuse.org/package/shelldap?search_term=shelldap),
|
|
|
|
|
Arch's User Repository [AUR](https://aur.archlinux.org/packages/shelldap),
|
|
|
|
|
and as a Fedora [RPM](https://src.fedoraproject.org/rpms/shelldap).
|
2016-01-12 07:17:05 +00:00
|
|
|
|
|
|
|
|
Many thanks to the maintainers of these packages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Installation
|
|
|
|
|
-------------
|
|
|
|
|
|
|
|
|
|
Shelldap is simply a perl script. Put it into a convenient place of your choosing.
|
|
|
|
|
|
|
|
|
|
Shelldap requires the following perl modules to function properly:
|
|
|
|
|
|
|
|
|
|
* YAML::Syck
|
|
|
|
|
* Term::Shell
|
2024-12-30 06:48:59 +00:00
|
|
|
* Digest::MD5
|
2016-01-12 07:17:05 +00:00
|
|
|
* Net::LDAP
|
|
|
|
|
* Algorithm::Diff
|
|
|
|
|
|
|
|
|
|
Additional functionality is supported with the presence of:
|
|
|
|
|
|
|
|
|
|
* IO::Socket::SSL
|
|
|
|
|
* Authen::SASL
|
2016-01-12 08:22:14 +00:00
|
|
|
* Term::ReadLine::Gnu
|
2016-01-12 07:17:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Development
|
|
|
|
|
-----------
|
|
|
|
|
|
2025-06-28 17:03:07 -07:00
|
|
|
You can also check out the source via Git/Jujutsu from its [home
|
|
|
|
|
repo](https://code.martini.nu/mahlon/shelldap), or its
|
|
|
|
|
[github mirror](https://github.com/mahlonsmith/shelldap.git).
|
2016-01-12 07:17:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
|
-------------
|
|
|
|
|
|
2018-04-04 19:30:00 +00:00
|
|
|
Once installed, Shelldap is fully documented via perldoc, and has a built-in `help` command as well.
|