Attitude is a command line application written in Go (golang) to manipulate user attributes in an Active Directory Setup. We use it at Celluloid VFX to automatically edit attributes like login scripts paths (scriptPath).
If you find this useful please file bugs and pull requests.
BIG FAT WARNING !!!1!
This is used against a Samba 4.2 Active Directory Setup and not tested on something else.
We don't have a clue about anything! Neither LDAP, AD, LDIF or programming. If you checkout this app and instadestroy™ your company don't blame us. Seriously! read the source code and decide if this is something you would allow to manipulate your directory service.
This code is barely tested and considered a hack. You have been warned!
- Linux
- Go (golang) > 1.7.1 With Debian based Linux systems it's the easiest way to install go via godeb.
- ciparser - a celluloid vfx build tool
git clone https://github.com/celluloidvfx/attitude.git
cd attitude
Beware the make file depends on our internal continuous integration tool called ciparser and will fail if you don't have it installed. Ciparser generates values in compile time from the cell-ci.yaml.
Things you should change for your environment before build. Edit following values in cell-ci.yaml
customvars:
- name: LdapServer
value: "ldap://yourserver.com:389"
- name: LdapDomain
value: "celluloidvfx.inc"
- name: AdminUser
value: admin
- name: AdminPass
value: "yourpass"
Once that is done simply type:
make
The app will not work using go's standard tools without ciparser and make. This behavior eventually will be dropped.
Ciparser uses musl-gcc, upx and gometalinter as default. We statically compile libraries into the executable. You can switch this behavior off in the cell-ci.yaml. See ciparser for more information on compile options.
- Windows 7 --> Check
- Ubuntu 16.04 --> Check
Server Running
- Sernet Samba 4.2 --> Check
Attitude is a command line app and is started in your terminal/cmd.
for more information see
./attitude --help
- Right now the admin password is compiled into the app and is displayed in debug mode. We kind of like this configless non-interactive execution. But this is very specific to our internal needs and needs external security measures. In future an non-/interactive User/Password request should be done similar to i.e. mysqlclient.
- Right now you can easily break your directory. This app should prevent you from doing this.
- Ldaps. TLS encrypted communication
- Add more attributes
- Enhance documentation. List attributes with M$ reference
Copyright (C) 2012 The Go Authors. See https://github.com/nmcclain/ldap/blob/master/LICENSE This seems to be a fork from https://github.com/mmitton/ldap/blob/master/LICENSE
Copyright (c) 2014 Simon Eskildsen https://github.com/Sirupsen/logrus/blob/master/LICENSE
Copyright (c) 2016 Jeremy Saenz & Contributors https://github.com/urfave/cli/blob/master/LICENSE
Copyright (C) 2016 Celluloid VFX and Johannes Amorosa
##License GPL Version 2 see attached License file