[Help me] Einfaches Bashskript - Java8 oracle Installation
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Genausogut kannst du bei sudo unterbinden, dass die Rechte gehalten werden. Aber mir ging’s nicht um sudo vs. pkexec, sondern um ’ne möglicherweise unsichere Konfiguration, die du gepostet hast. Ich seh’ schon, ich werd’s selbst anschauen müssen, wenn ich auf meine Fragen ’ne konkrete Antwort will.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Habe aber extra darauf hingewiesen.niemand hat geschrieben:17.11.2018 12:25:07sondern um ’ne möglicherweise unsichere Konfiguration, die du gepostet hast. Ich seh’ schon, ich werd’s selbst anschauen müssen, wenn ich auf meine Fragen ’ne konkrete Antwort will.
Und ja, wenn man eine Policy erstellt., sollte man sich sowieso vorher mal mit der Gebrauchsanweisung wenigstens halbwegs vertraut machen.
Ich rufe z.B. aus Thunar ebenfalls mit Root- Rechten Mousepad, Nano und Thunar selbst auf.
Da ist aber jedes mal das Root-PW ohne keep fällig also so:
Code: Alles auswählen
<allow_active>auth_admin</allow_active>
Code: Alles auswählen
$ cat /etc/sudoers
cat: /etc/sudoers: Datei oder Verzeichnis nicht gefunden
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
… dann muss der User also bei deinem Script viermal hintereinander das Root-PW eintippseln? Erscheint mir nicht sehr sinnvoll. Warum nicht ein Script schreiben, das den Job tut, und das dann einmal direkt als Root aufrufen (ob nun via sudo oder pkexec wäre dann auch nur Geschmackssache – du kannst sudo genauso confen, das Root-PW bei jedem Einsatz neu abzufragen und du kannst es ebenfalls so confen, dass nur exakt der eine Job damit ausgeführt werden kann)? Dann kann man sich auch den Umweg über das ~ des Users sparen.
Disclaimer: ich halt’s trotzdem weiterhin für ’ne bescheuerte Idee, sich a) auf diese Weise Fremdquellen ins System zu schreiben, die b) nicht mal für das betreffende System gedacht sind, und c) von ’ner nicht gerade vertrauenswürdigen Stelle stammen.
Disclaimer: ich halt’s trotzdem weiterhin für ’ne bescheuerte Idee, sich a) auf diese Weise Fremdquellen ins System zu schreiben, die b) nicht mal für das betreffende System gedacht sind, und c) von ’ner nicht gerade vertrauenswürdigen Stelle stammen.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Nein - Wenn du in der Poilicy die Zeile so schreibst:niemand hat geschrieben:17.11.2018 12:43:39dann muss der User also bei deinem Script viermal hintereinander das Root-PW eintippseln?
Code: Alles auswählen
<allow_active>auth_admin_keep</allow_active>
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
… womit sich das Ganze im Kreis dreht. Einmal aufgerufen, kann also doch jeder Angreifer ein Terminal mit vollen Rootrechten ohne weitere Rückfrage starten. Es sei denn, man schreibt in die Regel, dass das nicht geht, dann aber muss der User viermal hintereinander das Passwort eingeben; es sei denn, man schreibt ›keep‹ in die Regel, dann kann jeder Angreifer anschließend ein Terminal mit vollen Rootrechten ohne Rückfrage starten, es sei denn […]. *sigh*
Edit:
Disclaimer: ich halt’s trotzdem weiterhin für ’ne bescheuerte Idee, sich a) auf diese Weise Fremdquellen ins System zu schreiben, die b) nicht mal für das betreffende System gedacht sind, und c) von ’ner nicht gerade vertrauenswürdigen Stelle stammen.
Edit:
Disclaimer: ich halt’s trotzdem weiterhin für ’ne bescheuerte Idee, sich a) auf diese Weise Fremdquellen ins System zu schreiben, die b) nicht mal für das betreffende System gedacht sind, und c) von ’ner nicht gerade vertrauenswürdigen Stelle stammen.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Er könnte nur tilix als Root starten. Für alles andere hat er keine Berechtigung, und wahrscheinlich würde man das auch sehen.niemand hat geschrieben:17.11.2018 12:50:29dann kann jeder Angreifer anschließend ein Terminal mit vollen Rootrechten ohne Rückfrage starten, es sei denn […]. *sigh*
Im Gegensatz zu sudo wo die Berechtigung für eine bestimmte Zeit generell gilt (soweit mir bekannt).
Und gut- Ein Skript mit Root- Rechten aus dem Terminal ist die andre Lösung.
Zuletzt geändert von willy4711 am 17.11.2018 13:10:39, insgesamt 1-mal geändert.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
… und tilix ist, der Beschreibung nach, ein Terminalemulator. Der startet üblicherweise ’ne Shell mit den Rechten des Aufrufers. In diesem Fall ’ne Rootshell. Darüber hinaus kann man beliebige auszuführende Befehle mitgeben, die dann mit UID 0 ausgeführt werden. Du erkennst, was ich meine?
Edit:
Bei mir, zum Beispiel, kann der User, unter dem ich normalerweise arbeite, nur genau das System updaten, nachdem er’s Rootpasswort eingegeben hat. Mehr nicht. Keine Pakete deinstallieren, keine Quellen bearbeiten, … – nix, außer dem Update.
Zur Illustration:
Edit:
Du kannst sudo genau so konfigurieren, wie’s eigentlich gedacht war: einem bestimmten User (nicht für jedem, der zufällig gerade eingeloggt ist) die Ausführung eines bestimmten Befehls (incl. genauer Optionen, man kann den exakten String festlegen) unter einer bestimmten UID (muss nicht Root sein) im Gegenzug für’s Passwort (das des Zielusers, oder das Eigene – nach Belieben) einmalig (oder ’ne bestimmte Zeit lang) zu ermöglichen.Im Gegensatz zu sudo wo die Berechtigung für eine bestimmte Zeit generell gilt (soweit mir bekannt).
Bei mir, zum Beispiel, kann der User, unter dem ich normalerweise arbeite, nur genau das System updaten, nachdem er’s Rootpasswort eingegeben hat. Mehr nicht. Keine Pakete deinstallieren, keine Quellen bearbeiten, … – nix, außer dem Update.
Zur Illustration:
Code: Alles auswählen
niemand@xeon /home/niemand % sudo ls :(
[sudo] Passwort für niemand:
Leider darf der Benutzer niemand »/usr/bin/ls« als root auf xeon nicht ausführen.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Ja - aber ich glaube kaum, dass man ein zweites Terminal übersehen würde. der kann man Tilx auch "hidden" starten ?
und - habe es gerade mit meinem Update-Skript getestet:
Das keep funktioniert nur innerhalb des Skriptes. mit der Zeile
Code: Alles auswählen
<allow_active>auth_admin_keep</allow_active>
Die Unsicherheit scheint also nur während der Ausführung eines Skriptes vorhanden.
Edit:
aus:https://wiki.debianforum.de/Sudo
Mit sudo kann man also innerhalb dieses Zeitraums alles machen, es sei denn, man schreibt eine endlos lange /etc/sodoers, in derEin Problem der Debian-Sudo-Konfiguration ist, dass ein normaler Benutzer mit seinem Benutzerkennwort Rootberechtigungen erlangen kann und dass diese Anmeldung per Standardeinstellungen, 15 Minuten aktiv ist.
alles geregelt ist. Für Mehrbenutzer System sicherlich sinnvoll.
Was mich aber dazu bringt mal zu testen, wie es sich verhält, wenn mein Update- Skript läuft und ich versuche via pkexec ein zweites tilix- Terminal zu öffnen. Aber dazu muss erstmal genug zum Updaten sein.
Wohl war darum habe ich es ja auch in einer VM gemacht.niemand hat geschrieben:17.11.2018 13:38:14Aber insgesamt: ich halt’s trotzdem weiterhin für ’ne bescheuerte Idee, sich a) auf diese Weise Fremdquellen ins System zu schreiben, die b) nicht mal für das betreffende System gedacht sind, und c) von ’ner nicht gerade vertrauenswürdigen Stelle stammen.
Zuletzt geändert von willy4711 am 17.11.2018 13:47:51, insgesamt 2-mal geändert.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Weiß ich nicht – nutze ich nicht. Steht sicher in dessen Manpage. Möglicherweise kann man’s auch aus sich selbst heraus minimieren, und bei entsprechend schneller Hardware ist die Ausführung sowieso nur als kurzes Flackern auf dem Bildschirm erkennbar.willy4711 hat geschrieben:17.11.2018 13:23:56Ja - aber ich glaube kaum das man ein zweites Terminal übersehen würde. der kann man Tilx auch "hidden" starten ?
Da wäre die Frage, wie du’s gestartet hast. Klick auf ’nen Starter? Oder aus der gleichen Shell heraus, aus der du’s zuvor auch gestartet hast?willy4711 hat geschrieben:17.11.2018 13:23:56Die Unsicherheit scheint also nur während der Ausführung eines Skriptes vorhanden.
Aber letztlich ist’s auch egal: ich halte den Weg, aus ’nem Script heraus viermal separat ’nen Terminalemulator als Root hochzureißen, nur um je einen Task zu erledigen, für nicht sinnvoll. Sudo hin, pkexec her. Sinnvoller wär’s, das Script selbst einmal mit den betreffenden Rechten und ohne überhaupt ’nen Terminalemulator samt Rootshell drumherum zu starten, wobei die Config, ob nun sudo oder pkexec oder wasauchimmer, eine Regel für genau dieses Script enthält, und das Script selbst nur für Root schreibbar, und idealerweise noch immutable ist.
Aber insgesamt: ich halt’s trotzdem weiterhin für ’ne bescheuerte Idee, sich a) auf diese Weise Fremdquellen ins System zu schreiben, die b) nicht mal für das betreffende System gedacht sind, und c) von ’ner nicht gerade vertrauenswürdigen Stelle stammen.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Mein update-Skript, was genauso aufgebaut ist, starte ich natürlich mit einem Starter- sonst wär's ja nicht komfortabel .niemand hat geschrieben:17.11.2018 13:38:14Da wäre die Frage, wie du’s gestartet hast. Klick auf ’nen Starter? Oder aus der gleichen Shell heraus, aus der du’s zuvor auch gestartet hast?
Das obige Skript hatte ich aus der Shell gestartet. Soviel Arbeit hab ich da nun nicht rein gelegt.
Zuletzt geändert von willy4711 am 17.11.2018 13:51:42, insgesamt 1-mal geändert.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Es gäbe immer noch das seit 2016-09 nicht mehr angepaßte java-package 0.62,
das (nominell bis java8) ein deb aus dem oracle.tar baut.
Das dann ab ins eigene, lokale Repo.
das (nominell bis java8) ein deb aus dem oracle.tar baut.
Das dann ab ins eigene, lokale Repo.
Zuletzt geändert von rendegast am 17.11.2018 13:57:31, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
… „endlos lange sudoers“ sind hier: eine Änderung für die Zeit, eine Zeile für den konkreten Befehl. Auch gerne auslagerbar in je eine eigene Datei für jeden Befehl. Mir erscheint deine polkit-Regel da erheblich länger?willy4711 hat geschrieben:17.11.2018 13:23:56Mit sudo kann man also innerhalb dieses Zeitraums alles machen, es sei denn, man schreibt eine endlos lange /etc/sodoers, in der
alles geregelt ist.
Aus ’ner Shell heraus dürfte™ es auch nicht nochmal nachfragen. Ich werd’ mir pkexec mal angucken, wenn ich Zeit dafür finde.willy4711 hat geschrieben:17.11.2018 13:49:54Mein update-Skript, was genauso aufgebaut ist, starte ich natürlich mit einem Starter
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Wenn ich als root das skript aufrufe ----> keine Abfrage (logo)niemand hat geschrieben:17.11.2018 13:57:06Aus ’ner Shell heraus dürfte™ es auch nicht nochmal nachfragen. Ich werd’ mir pkexec mal angucken, wenn ich Zeit dafür finde.
als User ---> Abfrage (auch logo)
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Ja, die Frage war eher, was bei dem zweiten Aufruf aus der gleichen Shell heraus passiert.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Zweimal direkt hintereinander aus der Shell ------> Zweimal Rot- PWniemand hat geschrieben:17.11.2018 14:13:21Ja, die Frage war eher, was bei dem zweiten Aufruf aus der gleichen Shell heraus passiert.
Gleichzeitig mit einem anderen Skript und Tilix geht doch erst wieder , wenn mal was zum Updaten angeboten wird.
So läuft das Skript in ein Paar Sekunden durch.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Könntest einfach ’n sleep 10 reinmalen. Wird allerdings das Passwort verlangen. Ich würde also davon ausgehen, dass es die Rechte nur für die Shell vorhält, aus der heraus es das erste Mal aufgerufen wurde. Die verschwindet, sobald das Script durch ist.
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Ist exakt soniemand hat geschrieben:17.11.2018 14:40:35Könntest einfach ’n sleep 10 reinmalen. Wird allerdings das Passwort verlangen. Ich würde also davon ausgehen, dass es die Rechte nur für die Shell vorhält, aus der heraus es das erste Mal aufgerufen wurde. Die verschwindet, sobald das Script durch ist.
Terminal geöffnet vorher einen Einzeiler präpariert mit
Code: Alles auswählen
#!/bin/bash
pkexec tilix -x ifconfig
exit
sofort nach PW--Abfrage den Einzeiler aus der Shell gestartet -----> erneute Root- PW- Abfrage.
Das erscheint mir dann in Ordnung.
Auch was gelernt dabei:
Policy-Kit ist ganz schön schlau
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Naja … hoffentlich ist der User dann auch so schlau, das Script nur für Root editierbar, besser noch komplett immutable, zu machen. Beim Initiator dieses Threads hätte ich da meine Bedenken
-
- Beiträge: 7
- Registriert: 16.11.2018 11:55:37
Re: [Help me] Einfaches Bashskript - Java8 oracle Installation
Zusammenfassend nochmal danke für die Antworten, konnte dank denen mein erstes Bashscript schreiben & verbessern und es funktioniert sogar tadellos
Wenn es jemanden interessiert, was ich nun schlussendlich damit "zusammengebastelt" habe;
Ein Haupt-Bashskript, welches nach Bestätigung verschiedene Bashskripte durchlaufen lässt und nach jedem ausgeführten Skript anzeigt, dass es durchgeführt wurde und nachfrägt, ob das nächste Skript starten soll:
(- Rootlogin aktivieren (Klaro, normalerweise sollte man mit einem User arbeiten und nicht mit dem Root))
(- vmtools Download + Installation)
- Java8 oracle Installation samt PPA (ja, wird dann im Ernstfall durch openjdk ersetzt)
- Tomcat8, Postgresql-9.6 + Postgis-2.3 Download, Installation und Konfiguration
- JDBC Treiber Download + Konfiguration
- Postgresql-Datenbank Konfiguration
- CmdBuild Download und Konfiguration
(- Konfigurationen für Openmaint)
Mein Ziel, etwas über Bashskripte dazu zu lernen, habe ich erreicht.
Ausschnitte aus dem Haupt-Bashskript, die komplette Tomcat8 Installation und die CmdBuild Konfiguration:
Haupt-Bashskript
Tomcat8-Installation und Konfiguration
CmdBuild konfiguration
Wenn jetzt jemand denkt "wth steht da?", bitte SOFORT RAUSBRÜLLEN, wenn ich noch was dazulernen darf, nur zu.
Wenn es jemanden interessiert, was ich nun schlussendlich damit "zusammengebastelt" habe;
Ein Haupt-Bashskript, welches nach Bestätigung verschiedene Bashskripte durchlaufen lässt und nach jedem ausgeführten Skript anzeigt, dass es durchgeführt wurde und nachfrägt, ob das nächste Skript starten soll:
(- Rootlogin aktivieren (Klaro, normalerweise sollte man mit einem User arbeiten und nicht mit dem Root))
(- vmtools Download + Installation)
- Java8 oracle Installation samt PPA (ja, wird dann im Ernstfall durch openjdk ersetzt)
- Tomcat8, Postgresql-9.6 + Postgis-2.3 Download, Installation und Konfiguration
- JDBC Treiber Download + Konfiguration
- Postgresql-Datenbank Konfiguration
- CmdBuild Download und Konfiguration
(- Konfigurationen für Openmaint)
Mein Ziel, etwas über Bashskripte dazu zu lernen, habe ich erreicht.
Ausschnitte aus dem Haupt-Bashskript, die komplette Tomcat8 Installation und die CmdBuild Konfiguration:
Haupt-Bashskript
Code: Alles auswählen
#!/bin/bash
#####################################################################
#############################Begrüssung##############################
#####################################################################
tput setaf 4; read -p "
Herzlich Willkommen, wie heisst du denn? " name
#####################################################################
########################Nachfrage Bashskripte########################
#####################################################################
echo "
----------------------------------------------------------------------
Freut mich $name, ich bin der Tutti Quanti-Installer.
Damit ich alles korrekt installieren und konfigurieren kann,
müssen alle Bash-Skripte im Verzeichnis ~/Dokumente sein, dazu ghört:
1. java8_install.sh
2. tomcat8andpostgresql_install.sh
3. tomcat8_configuration.sh
4. driver_install.sh
5. cmdbuild_setup.sh
Falls noch nicht alle Skripts im Verzeichnis sind:
Drücke n um das Programm zu verlassen und hole dies nach.
Falls alle Skripts im Verzeichnis sind:
Drücke y um weiterzugelangen.
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
tput setaf 1;
echo "Die Eingabe ist n. Das Programm wird beendet..."
tput setaf 0;
sleep 3
exit 1
elif [ "$A" == "y" ];then
tput setaf 2;
echo "Die Eingabe ist y"
tput setaf 0;
sleep 3
else
tput setaf 3;
echo "Die Eingabe ist ungültig, der Installer wird neu gestartet."
tput setaf 0;
sleep 3
bash ~/Dokumente/FromBeginToEnd.sh
fi
echo "OK, es geht weiter..."
sleep 5
#####################################################################
#######################Bestätigung Installation######################
#####################################################################
tput setaf 6; read -p "
----------------------------------------------------------------------
Tutti Quanti-Installer: Hoi $name, dafür benötigst du Administrator-Rechte.
Willst du fortfahren und damit entweder ein Frankendebian erstellen,
das System ganz in die Knie zwingen oder auf gut Glück nur alles drum und dran installieren?
Dann bestätige jetzt mit y um das System einkrachen zu lassen oder n um zum sicheren Hafen zurück zu rudern.
----------------------------------------------------------------------
y/n: " answer
case "$answer" in
Yes|yes|Y|y|"")
tput setaf 2; echo "
Okay, du bist echt mutig. Selbstzerstörung in 3... 2... 1... ach keinen Quatsch, los geht's"
sleep 3
tput setaf 0;
;;
No|no|N|n)
tput setaf 1; echo "
Ganz weise entschieden, gaaanz weise. Aber es wurde tutti quanti nicht installiert."
tput setaf 0;
sleep 3
exit 1
;;
*)
tput setaf 3; echo "
Bist du zu unfähig, um Yes oder No zu schrieben? Der Installer wird neu gestartet, versuche es erneut!"
tput setaf 0;
sleep 3
bash ~/Dokumente/FromBeginToEnd.sh
;;
esac
#####################################################################
######################Java8 Oracle Installation######################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, jetzt mit dem Java8 Oracle-Setup beginnen?
y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
tput setaf 3;
echo "Die Eingabe ist x. Das Programm wird beendet..."
tput setaf 0;
sleep 3
exit 1
elif [ "$A" == "y" ];then
tput setaf 2;
echo "Die Eingabe ist y"
tput setaf 0;
sleep 3
else
tput setaf 3;
echo "Die Eingabe ist ungültig. Das Programm wird beendet."
tput setaf 0;
sleep 3
exit 1
fi
echo "Installation von Java8 Oracle beginnt jetzt..."
sleep 3;
bash ~/Dokumente/java8_install.sh
echo "Fertig!"
#####################################################################
####################Tomcat8+Postgres installation####################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, das Setup von Java8 Oracle wurde abgeschlossen, jetzt mit dem Tomcat8- und Postgres-Setup beginnen?
y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
tput setaf 3;
echo "Die Eingabe ist n. Das Programm wird beendet..."
tput setaf 0;
sleep 3
exit 1
elif [ "$A" == "y" ];then
tput setaf 2;
echo "Die Eingabe ist y"
tput setaf 0;
sleep 3
else
tput setaf 3;
echo "Die Eingabe ist ungültig. Das Programm wird beendet."
tput setaf 0;
sleep 3
exit 1
fi
echo "Installation von Tomcat8 und Postgres beginnt jetzt..."
sleep 3;
bash ~/Dokumente/tomcat8andpostgresql_install.sh
echo "Fertig!"
#####################################################################
########################Konfiguration Tomcat8########################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, das Setup von Tomcat8 und Postgres wurde abgeschlossen, jetzt mit der Tomcat8-Konfiguration beginnen?
y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
tput setaf 3;
echo "Die Eingabe ist n. Das Programm wird beendet..."
tput setaf 0;
sleep 3
exit 1
elif [ "$A" == "y" ];then
tput setaf 2;
echo "Die Eingabe ist y"
tput setaf 0;
sleep 3
else
tput setaf 3;
echo "Die Eingabe ist ungültig. Das Programm wird beendet."
tput setaf 0;
sleep 3
exit 1
fi
echo "Konfiguration von Tomcat8 beginnt jetzt..."
sleep 3;
bash ~/Dokumente/tomcat8_configuration.sh
echo "Fertig!"
#####################################################################
########################Treiber Installation#########################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, die Konfiguration von Tomcat8 wurde abgeschlossen, jetzt mit der Installation des JDBC-Treibers beginnen?
y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "x/y: " A
if [ "$A" == "n" ];then
tput setaf 3;
echo "Die Eingabe ist n. Das Programm wird beendet..."
tput setaf 0;
sleep 3
exit 1
elif [ "$A" == "y" ];then
tput setaf 2;
echo "Die Eingabe ist y"
tput setaf 0;
sleep 3
else
tput setaf 3;
echo "Die Eingabe ist ungültig. Das Programm wird beendet."
tput setaf 0;
sleep 3
exit 1
fi
echo "Installation von JDBC Treiber beginnt jetzt..."
sleep 3;
bash ~/Dokumente/driver_install.sh
echo "Fertig!"
#####################################################################
########################cmdbuild Installation########################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, die Installation des JDBC-Treibers wurde abgeschlossen, jetzt mit CmdBuild-Setup beginnen?
y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
tput setaf 3;
echo "Die Eingabe ist n. Das Programm wird beendet..."
tput setaf 0;
sleep 3
exit 1
elif [ "$A" == "y" ];then
tput setaf 2;
echo "Die Eingabe ist y"
tput setaf 0;
sleep 3
else
tput setaf 3;
echo "Die Eingabe ist ungültig. Das Programm wird beendet."
tput setaf 0;
sleep 3
exit 1
fi
echo "Setup von CmdBuild beginnt jetzt..."
sleep 3;
bash ~/Dokumente/cmdbuild_setup.sh
echo "Fertig! Es wurden nun alle bash-scripts ausgeführt und die Applikationen sollten laufen.
Nun sollte der restliche Teil nach Anleitung (ab Kapitel 7.4) manuell konfiguriert werden.
Link zum tomcat8-Webinterface: http://HOSTNAME:8080
Link zum tomcat8-Webinterface-Manager: http://HOSTNAME:8080/manager/html"
sleep 3
######################################################################
#################################Ende#################################
######################################################################
Code: Alles auswählen
#!/bin/bash
#stoppe tomcat8 dienste
systemctl stop tomcat8
#erstelle shared, classes, common und server-Ordner
mkdir /var/lib/tomcat8/server/
mkdir /var/lib/tomcat8/server/classes
mkdir /var/lib/tomcat8/shared
mkdir /var/lib/tomcat8/shared/classes
mkdir /usr/share/tomcat8/common
mkdir /usr/share/tomcat8/common/classes
mkdir /usr/share/tomcat8/server
mkdir /usr/share/tomcat8/server/classes
#edit /etc/default/tomcat8
apt-get install -y --allow-unauthenticated ed
ed /etc/default/tomcat8 <<EOF
/^TOMCAT8_USER
s/tomcat8/root
/^#JAVA_HOME
s/#JAVA_HOME/JAVA_HOME
/^JAVA_HOME
s/java-8-openjdk/java-8-oracle
/^JAVA_OPTS
s/-XX:+UseConcMarkSweepGC"/-XX:+UseConcMarkSweepGC -Xms128m -Xmx1024m"
/^#LOGFILE_DAYS
s/#LOGFILE_DAYS=14/LOGFILE_DAYS=14
wq
EOF
#edit /etc/tomcat8/tomcat-users
ed /etc/tomcat8/tomcat-users.xml <<EOF
$
c
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="manager-gui, admin-gui"/>
</tomcat-users>
.
wq
EOF
Code: Alles auswählen
#!/bin/bash
#tomcat8 ausschalten
systemctl stop tomcat8
#cmdbuild herunterladen, entzippen und in /usr/share/tomcat8/lib/ einfuegen
wget https://downloads.sourceforge.net/project/cmdbuild/2.5.1/cmdbuild-2.5.1.zip
unzip cmdbuild-2.5.1.zip
cp cmdbuild-2.5.1/extras/tomcat-libs/6.0\ or\ higher/postgresql-9.4.1207.jar /usr/share/tomcat8/lib/
#openmaint herunterladen, entzippen, aufteilen und in /var/lib/tomcat8/webapps/ einfuegen
wget https://sourceforge.net/projects/openmaint/files/1.1/Core%20updates/openmaint-1.1-2.5.1.zip
unzip openmaint-1.1-2.5.1.zip
mkdir shark; ( cd shark; jar -xf ../cmdbuild-shark-server-openmaint-2.5.1.war )
mkdir openmaint; ( cd openmaint; jar -xf ../cmdbuild-openmaint-2.5.1.war )
mv shark openmaint /var/lib/tomcat8/webapps/
#URL bei /var/lib/tomcat8/webapps/shark/META-INF/context.xml korrigieren
ed /var/lib/tomcat8/webapps/shark/META-INF/context.xml <<EOF
/url
s/\${cmdbuild}/openmaint
wq
EOF
#tomcat8 neustarten
systemctl stop tomcat8
systemctl start tomcat8
#/var/lib/tomcat8/webapps/shark/conf/Shark.conf anpassen; url openmaint;user postgres;pw postgres
ed /var/lib/tomcat8/webapps/shark/conf/Shark.conf <<EOF
/^org.cmdbuild.ws.url
c
org.cmdbuild.ws.url=http://localhost:8080/openmaint/
.
/cmdbuild.ws.username
s/workflow/postgres
/cmdbuild.ws.password
s/changeme/postgres
wq
EOF
#userrollen postgres und shark erstellen
su - postgres -c psql <<EOF
alter role postgres password 'postgres' login;
create role shark password 'shark' login;
EOF
#Logdateien von tomcat8 löschen
rm -rf /var/log/tomcat8/*