-
Notifications
You must be signed in to change notification settings - Fork 1
/
ldapsshkeydel.sh
executable file
·94 lines (84 loc) · 1.95 KB
/
ldapsshkeydel.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/bin/bash
printhelp()
{
echo "Usage: $0 [options] KEYNAME
Options:
-h, --help display this help message and exit
-f, --bindfile set url,binddn,bindpasswd with file
-H, --url URL LDAP Uniform Resource Identifier(s)
-D, --binddn DN bind DN
-w, --bindpasswd PASSWORD bind password"
exit 0
}
argnum=$#
if [ $argnum -eq 0 ]
then
printhelp
exit 0
fi
keyname=""
url=""
binddn=""
bindpasswd=""
for a in $(seq 1 1 $argnum)
do
nowarg=$1
case "$nowarg" in
-h|--help)
printhelp
;;
-f|--bindfile)
shift
url=$(yq e '.url' $1)
if [ "$url" == "null" ]
then
url=""
fi
binddn=$(yq e '.binddn' $1)
if [ "$binddn" == "null" ]
then
binddn=""
fi
bindpasswd=$(yq e '.bindpasswd' $1)
if [ "$bindpasswd" == "null" ]
then
bindpasswd=""
fi
;;
-H|--url)
shift
url=$1
;;
-D|--binddn)
shift
binddn=$1
;;
-w|--bindpasswd)
shift
bindpasswd=$1
;;
*)
if [ "$nowarg" = "" ]
then
break
fi
keyname=$1
;;
esac
shift
done
if [ "$keyname" = "" ] || [ "$binddn" = "" ]
then
echo "Please add your keyname and ldapbinddn."
printhelp
fi
if [ "$bindpasswd" = "" ]
then
read -p "Enter LDAP Password: " -s bindpasswd
fi
if [ "$url" != "" ]
then
ldapurl="-H $url"
fi
basedn=$(echo $(for a in $(echo "$binddn" | sed "s/,/ /g"); do printf "%s," $(echo $a | grep dc=); done) | sed "s/^,//g" | sed "s/,$//g")
ldapdelete -x $ldapurl -D "$binddn" -w "$bindpasswd" "cn=$keyname,ou=sshkey,$basedn"