This repository was archived by the owner on Dec 23, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathusermgmt
executable file
·239 lines (208 loc) · 5.7 KB
/
usermgmt
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
#!/bin/bash
function userView {
title
echo 'Eingeloggte Nutzer:'
w
echo ''
echo 'Alle Nutzer:'
cut -d: -f1 /etc/passwd
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function groupView {
echo 'Alle Gruppen:'
cut -d: -f1 /etc/group
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userCreate {
echo 'Geben Sie den Nutzernamen ein:'
read username
echo "Möchten Sie ein Homeverzeichnis für $username erstellen? (J=Ja)"
read -n 1 homedir
if [ ${homedir^^} == "J" ]; then
useradd $username -m
else
useradd $username
fi
passwd $username
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userChangeName {
echo "Geben Sie den neuen Nutzernamen für $1 ein:"
read newusername
usermod -l $newusername $1
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userChangePassword {
passwd $username
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userChangeNewHome {
echo 'Geben Sie den Pfad für das neue Home-Verzeichnis ein:'
read directory
if [ -d "$directory" ]; then
echo 'Soll der Inhalt des aktuellen Home-Verzeichnisses in das neue Home-Verzeichnis verschoben werden? (J=Ja)'
read moveHome -n 1
echo -ne "\r" # remove input
if [ ${moveHome^^} == "J" ]; then
usermod -d $directory -m $1
else
usermod -d $directory $1
fi
fi
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userAddGroup {
userListGroups $1
echo "Welcher Gruppe soll $1 hinzugefügt werden?"
read group
usermod -a -G $group $1
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userRemoveGroup {
userListGroups $1
echo "Welcher Gruppe soll $1 entfernt werden?"
read group
deluser --group $1 $group
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userListGroups {
echo "Aktuelle Gruppen von $1:"
groups $1
}
function userChange {
echo 'Geben Sie den aktuellen Nutzernamen ein:'
read username
if id "$username" >/dev/null 2>&1; then
echo "Was möchten Sie für $username ändern?"
echo ' (1) Nutzername'
echo ' (2) Passwort'
echo ' (3) Neues Homeverzeichnis'
echo ' (4) Gruppenzugehörigkeit hinzufügen'
echo ' (5) Gruppenzugehörigkeit entfernen'
read -n 1 selection
echo -ne "\r" # remove input
case $selection in
1) userChangeName $username; ;;
2) userChangePassword $username; ;;
3) userChangeNewHome $username; ;;
4) userAddGroup $username; ;;
5) userRemoveGroup $username; ;;
esac
else
echo 'Nutzer existiert nicht!'
fi
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function userDelete {
echo 'Geben Sie den Nutzernamen des zu löschenden Nutzers ein:'
read delusername
echo 'Möchten Sie das Home-Verzeichnis und den Mailspool entfernen? (J=Ja)'
read delhome
if [ ${delhome^^} == "J" ]; then
userdel -r $delusername
else
userdel $delusername
fi
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function groupCreate {
echo 'Geben Sie den Gruppennamen ein:'
read groupname
echo 'Möchten Sie ein Passwort für die Gruppe festlegen? (J=Ja)'
read password
groupadd $groupname
if [ ${password^^} == "J" ]; then
gpasswd $groupname
fi
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function groupChangeName {
echo "Geben Sie den neuen Gruppennamen für $1 ein:"
read newGroupName
groupmod -n $newGroupName $1
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function groupChangePassword {
gpasswd $1
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function groupChange {
echo 'Geben Sie den Gruppennamen ein:'
read groupname
if grep ^$groupname: /etc/group >/dev/null 2>&1; then
echo "Was möchten Sie für $groupname ändern?"
echo ' (1) Gruppennamen'
echo ' (2) Passwort'
read -n 1 selection
echo -ne "\r" # remove input
case $selection in
1) groupChangeName $groupname; ;;
2) groupChangePassword $groupname; ;;
esac
else
echo "Gruppe $groupname existiert nicht!"
fi
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
function groupDelete {
echo 'Geben Sie den Gruppennamen der zu löschenden Gruppe ein:'
read groupname
groupdel $groupname
echo ">>> Zurück zum Menü, irgendeine Taste drücken <<<"
read -n 1
}
while true; do
clear
echo
echo ' ____ __ '
echo ' / __ )___ ____ __ __/ /_____ ___ _____'
echo ' / __ / _ \/ __ \/ / / / __/_ / / _ \/ ___/'
echo ' / /_/ / __/ / / / /_/ / /_ / /_/ __/ / '
echo ' /_____/\___/_/ /_/\__,_/\__/ /___/\___/_/ '
echo ' ____ '
echo ' _ _____ ______ ______ _/ / /___ ______ ____ _'
echo ' | | / / _ \/ ___/ | /| / / __ `/ / __/ / / / __ \/ __ `/'
echo ' | |/ / __/ / | |/ |/ / /_/ / / /_/ /_/ / / / / /_/ / '
echo ' |___/\___/_/ |__/|__/\__,_/_/\__/\__,_/_/ /_/\__, / '
echo ' /____/ '
echo
echo ' (1) Benutzerübersicht'
echo ' (2) Gruppenübersicht'
echo ' (3) Benutzer erstellen'
echo ' (4) Benutzer ändern'
echo ' (5) Benutzer löschen'
echo ' (6) Gruppe erstellen'
echo ' (7) Gruppe ändern'
echo ' (8) Gruppe löschen'
echo ' (x) exit'
echo
read -n 1 selection
echo -ne "\r" # remove input
case $selection in
1) userView; ;;
2) groupView; ;;
3) userCreate; ;;
4) userChange; ;;
5) userDelete; ;;
6) groupCreate; ;;
7) groupChange; ;;
8) groupDelete; ;;
x)
exit;
;;
esac
done