[Help me] Einfaches Bashskript - Java8 oracle Installation

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 12:25:07

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.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 12:36:43

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 12:25:07
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.
Habe aber extra darauf hingewiesen.
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>
und: :mrgreen:

Code: Alles auswählen

$ cat /etc/sudoers
cat: /etc/sudoers: Datei oder Verzeichnis nicht gefunden

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 12:43:39

… 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.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 12:46:18

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 12:43:39
dann muss der User also bei deinem Script viermal hintereinander das Root-PW eintippseln?
Nein - Wenn du in der Poilicy die Zeile so schreibst:

Code: Alles auswählen

<allow_active>auth_admin_keep</allow_active>
Muss er sie das Root- PW nur einmal am Anfang eingeben.

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 12:50:29

… 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.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 13:07:59

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 12:50:29
dann kann jeder Angreifer anschließend ein Terminal mit vollen Rootrechten ohne Rückfrage starten, es sei denn […]. *sigh*
Er könnte nur tilix als Root starten. Für alles andere hat er keine Berechtigung, und wahrscheinlich würde man das auch sehen. 8O

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.

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 13:09:55

… 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:
Im Gegensatz zu sudo wo die Berechtigung für eine bestimmte Zeit generell gilt (soweit mir bekannt).
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.
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.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 13:23:56

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:09:55
Du erkennst, was ich meine?
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>
Ein zweites Mal aufgerufen (nach ca 30 Sekunden) , wird wieder Root-PW abgefragt.
Die Unsicherheit scheint also nur während der Ausführung eines Skriptes vorhanden.

Edit:
aus:https://wiki.debianforum.de/Sudo
Ein 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.
Mit sudo kann man also innerhalb dieses Zeitraums alles machen, es sei denn, man schreibt eine endlos lange /etc/sodoers, in der
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. :mrgreen:
niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:38:14
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.
Wohl war darum habe ich es ja auch in einer VM gemacht.
Zuletzt geändert von willy4711 am 17.11.2018 13:47:51, insgesamt 2-mal geändert.

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 13:38:14

willy4711 hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:23:56
Ja - aber ich glaube kaum das man ein zweites Terminal übersehen würde. der kann man Tilx auch "hidden" starten ?
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: ↑ zum Beitrag ↑
17.11.2018 13:23:56
Die Unsicherheit scheint also nur während der Ausführung eines Skriptes vorhanden.
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?

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.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 13:49:54

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:38:14
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?
Mein update-Skript, was genauso aufgebaut ist, starte ich natürlich mit einem Starter- sonst wär's ja nicht komfortabel :mrgreen: .
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.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von rendegast » 17.11.2018 13:51:12

Es gäbe immer noch das seit 2016-09 nicht mehr angepaßte Debianjava-package 0.62,
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")

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 13:57:06

willy4711 hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:23:56
Mit sudo kann man also innerhalb dieses Zeitraums alles machen, es sei denn, man schreibt eine endlos lange /etc/sodoers, in der
alles geregelt ist.
… „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: ↑ zum Beitrag ↑
17.11.2018 13:49:54
Mein update-Skript, was genauso aufgebaut ist, starte ich natürlich mit einem Starter
Aus ’ner Shell heraus dürfte™ es auch nicht nochmal nachfragen. Ich werd’ mir pkexec mal angucken, wenn ich Zeit dafür finde.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 14:11:07

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:57:06
Aus ’ner Shell heraus dürfte™ es auch nicht nochmal nachfragen. Ich werd’ mir pkexec mal angucken, wenn ich Zeit dafür finde.
Wenn ich als root das skript aufrufe ----> keine Abfrage (logo)
als User ---> Abfrage (auch logo)

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 14:13:21

Ja, die Frage war eher, was bei dem zweiten Aufruf aus der gleichen Shell heraus passiert.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 14:31:17

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 14:13:21
Ja, die Frage war eher, was bei dem zweiten Aufruf aus der gleichen Shell heraus passiert.
Zweimal direkt hintereinander aus der Shell ------> Zweimal Rot- PW
Gleichzeitig mit einem anderen Skript und Tilix geht doch erst wieder , wenn mal was zum Updaten angeboten wird. :evil:
So läuft das Skript in ein Paar Sekunden durch.

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 14:40:35

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.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 14:59:04

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 14:40:35
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.
Ist exakt so
Terminal geöffnet vorher einen Einzeiler präpariert mit

Code: Alles auswählen

#!/bin/bash

pkexec tilix -x ifconfig

exit
Mein Update Skript mit dem Starter losgeschickt
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 :THX:

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 15:02:26

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 ;)

AptGetConfused
Beiträge: 7
Registriert: 16.11.2018 11:55:37

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von AptGetConfused » 26.11.2018 18:08:56

Zusammenfassend nochmal danke für die Antworten, konnte dank denen mein erstes Bashscript schreiben & verbessern und es funktioniert sogar tadellos :hail:

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. :mrgreen:



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#################################
######################################################################
Tomcat8-Installation und Konfiguration

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
CmdBuild konfiguration

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/*
Wenn jetzt jemand denkt "wth steht da?", bitte SOFORT RAUSBRÜLLEN, wenn ich noch was dazulernen darf, nur zu.

Antworten