-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.sh
368 lines (288 loc) · 8.47 KB
/
setup.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
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
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
#!/bin/bash
user="$(whoami)"
setup_path=/setup
conf_save=$setup_path/conf_backup
conf_test=$setup_path/tester
if [ $user != root ]
then
echo "Für dieses Script musst du root sein. Ich mach das schon :D
Allerdings musst du jetzt das Script neu starten. Lege vorher ein
neues Passwort für den Nutzer $user fest.
"
passwd
sudo su
fi
if [ ! -d "$setup_path" ];then
echo "Das Setup-Verzeichnis existiert nicht. Wird erstellt."
sudo mkdir $setup_path/
fi
if [ ! -d "$conf_save" ];then
sudo mkdir $conf_save
fi
if [ ! -d "$conf_test" ];then
sudo mkdir $conf_test
fi
clear
echo "
Raspberry-Pi Configurator für die erstinstallation und config des Pi's.
-------------------------------------------------------------------------
"
echo " Die Programme / Konfigurationspunkte :
----------------------------------------------
*Hostname
(ändert den Standart-Hostnamen der Standart ist raspberrypi)
-----------------------------------------------------------
*Remote-Desktop
(Bietet die möglichkeit virtuellem Desktop zuzugreifen.)
-------------------------------------------------------
Rootlogin
(Bietet die möglichkeit als root via SSH zuzugreifen.)
----------------------------------------------------------
fstab
(fügt zu mountende Adressen zur fstab hinzu)
--------------------------------------------
Java (installiert Java)
-------------------------
Screen (installiert Screen)
------------------------------
ZIP
(installiert ZIP um zip Archive erstellen und entpacken zu können.)
-------------------------------------------------------------------
SAMBA
(installiert und Konfiguriert SAMBA um auf den PI als Netzlaufwerk zugreifen zu können.)
----------------------------------------------------------------------------------------
*Raspi-config
(öffnet Abschließend die Raspi-config um Sprache, Uhrzeit etc. einstellen zu können
-----------------------------------------------------------------------------------
Du kannst jetzt entscheiden was du installieren möchtest.
Mit * markierte werden immer Ausgeführt
----------------------------------------------------------
"
echo "Alles installieren | Individuell A/I
"
read gesamt
if [ $gesamt == "A" ] || [ $gesamt == "a" ];then
wahl_root=y
wahl_fstab=y
echo "Lokalen Mount-Pfad angeben: (beispiel : /mnt/Filme/"
read fstab_mnt
echo "Mount IP-Adresse: (zb : 192.168.1.2)"
read mnt_ip
echo "Mount Freigabe: (zb : /export/beispiel)"
read mnt_share
echo "Mehrere Mount-eingaben? Y/N?"
read repeat
wahl_java=y
wahl_screen=y
wahl_zip=y
wahl_samba=y
echo "SAMBA-Gruppen-Name:"
read name
else
if [ ! -e "$conf_test/rootlogin.txt" ];then
echo "Rootlogin via SSH erlauben?"
read wahl_root
fi
if [ ! -e "$conf_test/fstab.txt" ];then
echo "Möchtest du die fstab anpassen ? Y/N"
read wahl_fstab
if [ $wahl_fstab == "Y" ] || [ $wahl_fstab == "y" ]
then
echo "" >> $conf_test/fstab.txt
echo "Lokalen Mount-Pfad angeben: (beispiel : /mnt/Filme/"
read fstab_mnt
echo "Mount IP-Adresse: (zb : 192.168.1.2)"
read mnt_ip
echo "Mount Freigabe: (zb : /export/beispiel)"
read mnt_share
echo "Mehrere Mount-eingaben? Y/N?"
read repeat
fi
fi
if [ ! -e "$conf_test/java.txt" ];then
echo "Möchtest du Java installieren ? Y/N"
echo "" >> $conf_test/java.txt
read wahl_java
fi
if [ ! -e "$conf_test/screen.txt" ];then
echo "Möchtest du Screen installieren ? Y/N"
echo "" >> $conf_test/screen.txt
read wahl_screen
fi
if [ ! -e "$conf_test/zip.txt" ];then
echo "Möchtest du zip installieren ? Y/N"
echo "" >> $conf_test/zip.txt
read wahl_zip
fi
if [ ! -e "$conf_test/samba.txt" ];then
echo "" >> $conf_test/samba.txt
echo "Möchtest du SAMBA installieren ? Y/N"
read wahl_samba
if [ $wahl_samba == "Y" ] || [ $wahl_samba == "y" ]
then
echo "SAMBA-Gruppen-Name:"
read name
fi
fi
fi
###############----Hostname----####################
if [ ! -e "$conf_test/hostname.txt" ];then
echo "" >> $conf_test/hostname.txt
echo "Hostname ändern in : (standart raspberrypi)"
read hostname
sudo cp /etc/hostname $conf_save/hostname
echo $hostname > /etc/hostname
fi
sudo apt-get update
################----Static-IP----###################
if [ ! -e "$conf_test/static-ip.txt" ];then
echo "" >> $conf_test/static-ip.txt
echo "Statische IP-Adresse zuweisen"
echo ""
echo "IP-Adresse : (beispel: 192.168.2.234)"
read static_ip
echo "Gateway : (beispel: 192.168.0.1)"
read gateway
sudo service dhcpcd start
sudo systemctl enable dhcpcd
sudo cp /etc/dhcpcd.conf $conf_save/dhcpcd.conf
echo "
interface eth0
static ip_address=$static_ip/24
static routers=$gateway
static domain_name_servers=$gateway
" >> /etc/dhcpcd.conf
fi
##############----Remote-Desktop----################
if [ ! -e "$conf_test/remote.txt" ];then
echo "" >> $conf_test/remote.txt
sudo apt-get install xrdp -y
sudo apt full-upgrade -y
fi
##############----Rootlogin----##############
if [ $wahl_root == "Y" ] || [ $wahl_root == "y" ]
then
if [ ! -e "$conf_test/rootlogin.txt" ];then
echo "" >> $conf_test/rootlogin.txt
echo rootlogin.txt
echo "" >> $conf_test/rootlogin.txt
sudo cp /etc/ssh/sshd_config $conf_save/sshd_config
sudo sed -i -e 32c"PermitRootLogin yes" /etc/ssh/sshd_config
echo "Neues Root-Passwort:"
passwd
fi
fi
###############----fstab----################
if [ $wahl_fstab == "Y" ] || [ $wahl_fstab == "y" ]
then
if [ ! -e "$conf_test/fstab.txt" ];then
echo "" >> $conf_test/fstab.txt
cp /etc/fstab $conf_save/fstab
if [ ! -d "$fstab_mnt" ];then
echo "Das Verzeichnis existiert nicht. Wird erstellt."
mkdir $fstab_mnt
fi
echo "$mnt_ip:$mnt_share $fstab_mnt nfs rw 0 0" >> /etc/fstab
while [ $repeat == "Y" ] || [ $repeat == "y" ]
do
echo "Lokalen Mount-Pfad angeben: (beispiel : /mnt/Filme/"
read fstab_mnt
echo "Mount IP-Adresse: (zb : 192.168.1.2)"
read mnt_ip
echo "Mount Freigabe: (zb : /export/beispiel)"
read mnt_share
if [ ! -d "$fstab_mnt" ];then
echo "Das Verzeichnis existiert nicht. Wird erstellt."
mkdir $fstab_mnt
fi
echo "$mnt_ip:$mnt_share $fstab_mnt nfs rw 0 0" >> /etc/fstab
echo "Weiteren Pfad eingeben? Y/N"
read repeat
done
mount -a
fi
fi
###############----Java----################
if [ $wahl_java == "Y" ] || [ $wahl_java == "y" ]
then
if [ ! -e "$conf_test/java.txt" ];then
echo "" >> $conf_test/java.txt
sudo apt-get install openjdk-11-jre-headless -y
fi
fi
###############----Screen----################
if [ $wahl_screen == "Y" ] || [ $wahl_screen == "y" ]
then
if [ ! -e "$conf_test/screen.txt" ];then
echo "" >> $conf_test/screen.txt
fi
sudo apt-get install screen -y
fi
###############----ZIP----################
if [ $wahl_zip == "Y" ] || [ $wahl_zip == "y" ]
then
if [ ! -e "$conf_test/zip.txt" ];then
echo "" >> $conf_test/zip.txt
fi
sudo apt-get install zip -y
fi
##############----SAMBA----################
if [ $wahl_samba == "Y" ] || [ $wahl_samba == "y" ]
then
if [ ! -e "$conf_test/samba.txt" ];then
echo "" >> $conf_test/samba.txt
fi
echo Samba install-Script
pfad=/
sudo apt-get update
sudo apt-get install samba samba-common smbclient -y
sudo cp /etc/samba/smb.conf $conf_save/smb.conf
sudo sed -i -e 175c" read only = no" /etc/samba/smb.conf
echo "
[$name]
comment=Raspberry Pi
path=/
browseable = yes
guest ok = no
public = yes
writeable = yes
create mask = 0777
directory mask = 0777
" >> /etc/samba/smb.conf
sudo chown root:root $pfad
sudo chown pi:pi $pfad
echo "Vergebe ein Passwort für deine Dateien: (muss bei Windows eingegeben werden)"
smbpasswd -a root
sudo service nmbd restart && sudo service smbd restart
fi
#############----Autostart----#########
if [ ! -e "$conf_test/autostart.txt" ];then
echo "" >> $conf_test/autostart.txt
autostart_script=/autostart/autostart.sh
if [ ! -d /autostart ];then
sudo mkdir /autostart
fi
if [ ! -e $autostart_script ];then
sudo sed -i 's/^exit/\/autostart\/autostart.sh \n\n&/' /etc/rc.local
fi
echo "#!/bin/bash
### Autostart-Script ###
sleep 15s
sudo mount -a
sudo ping -i 300 google.de
exit 0
" > $autostart_script
chmod +x $autostart_script
fi
#############----Raspi-config----#########
if [ ! -e "$conf_test/raspi_config.txt" ];then
echo "" >> $conf_test/raspi_config.txt
sudo raspi-config
fi
COUNTER=5
while [ $COUNTER -gt 0 ]; do
echo Neustart in $COUNTER Sekunden.
sleep 1s
let COUNTER=COUNTER-1
done
sudo reboot