141128
Goto Top

Suche Linux Directory zur Verwendung in Bashscript

Servus,

Ich bastle gerade an einem kleinen Bashscript das eine Basic Arch Installation etwas einrichtet, überwiegend zum lernen und aus Spaß.


Ich möchte Dinge wie yay oder Snap gescriptet installieren, das Hauptscript läuft mit Root rechten, also wird mit sudo aufgerufen weil ich auch viel mit pacman installiere und so. Yay bzw makepkg mögen root ja nicht so darum habe ich das ganze in extra scripts ausgelagert die mit "sudo -u $SUDO_USER bash ./script.sh" aufgerufen werden.

Es bleibt aber ein Problem, irgendwas schreit immer wegen Zugriffsrechten, das ganze findet so standard mässig ja im Home Directory statt.

Ich bin leider mit der Linux Dir Struktur noch nicht zu 100% vertraut, komme eher von Windows... Ich suche ein Dir das ich benutzen könnte in dem alle Nutzer und Root rechte haben und ich die scripts nachladen, git clonen und makepkg ausführen kann ohne das mir Zugriffsrechte dazwischen funken.

Bzw allgemeiner würd mich auch interessieren wie man das mit Git am besten macht, ich schätze mal es geht besser als das einfach ins Home dir zu clonen...


Ich hab natürlich schon gegoogelt aber nix gefunden, mag aber auch daran liegen das ich ned wirklich wusste wie ich die Frage direkt formulieren soll ohne so nen Absatz hier...

Wenn ich irgendwas wichtiges übersehen hab oder einfach noch nicht gelernt habe freu ich mich auch über Hinweise in die richtige Richtungface-smile

Vielen Dank schonmalface-smile

Content-ID: 2586196819

Url: https://administrator.de/contentid/2586196819

Ausgedruckt am: 04.11.2024 um 18:11 Uhr

LordGurke
LordGurke 24.04.2022 um 14:18:14 Uhr
Goto Top
Erstell dir doch einfach ein Verzeichnis und gebe allen Nutzern volle Zugriffsrechte?
Lochkartenstanzer
Lösung Lochkartenstanzer 24.04.2022 aktualisiert um 14:36:10 Uhr
Goto Top
Moin

einfach "selber machen":
$ mkdir ~/unsicherer-ordner
mkdir: Verzeichnis '/home/blabla/unsicherer-ordner' angelegt
$ chmod -vR a+rwx 
der Modus von '/home/blabla/unsicherer-ordner' wurde von 0775 (rwxrwxr-x) in 0777 (rwxrwxrwx) geändert
$ 

ggf einzelnen Dateien in diesem Order, die später dazukommen nochmal per chmod die Berechtigungen explizit nochmal zuweisen.

lks

PS: Ein solcher Ordner, insbesondere wenn da Skripte mit root-rechten ausgeführt werden, ist ein großen Einfallstor für Ungeziefer und daher ein nogo! Du solltest daher nochmal überdenken, was Du da genau treibst.
141128
141128 24.04.2022 um 15:21:48 Uhr
Goto Top
Hi,

danke schonmalface-smile

Aber wo würde ich das denn reinmachen? Du hast jetzt /Home/ genommen aber mein Eindruck war das das eher ungeeignet für sowas ist...

Danke für den Hinweis, ich bin absolut nicht darauf fixiert, was wäre denn eine bessere Herangehensweise wenn ich so direkt fragen darf?

Das mit dem Ordner war nur mein erster Gedanke weil ich nix besseres weiß, bin noch relativ neu damitface-smile
Lochkartenstanzer
Lösung Lochkartenstanzer 24.04.2022 um 15:32:12 Uhr
Goto Top
Zitat von @141128:

Hi,

danke schonmalface-smile

Aber wo würde ich das denn reinmachen? Du hast jetzt /Home/ genommen aber mein Eindruck war das das eher ungeeignet für sowas ist...


/home war nur ein Beispiel. /var oder /opt, ggf auch unter /srv würde sowas hinpassen. Kommt darauf an, wie das im ganzen zusammenhängt.

Danke für den Hinweis, ich bin absolut nicht darauf fixiert, was wäre denn eine bessere Herangehensweise wenn ich so direkt fragen darf?

Den Skripten nur die Rechte geben die sie brauchen und ggf. Jedesmal passend frisch setzen. Aber ohne das ganze im Zusammenhang zu sehen kann man da schlecht raten.

lks
141128
141128 24.04.2022 um 15:59:51 Uhr
Goto Top
Ich will da jetzt garned so viel Aufwand verursachen...

Falls es interessiert, "https://github.com/Akitarmo/ArchSetupScript/tree/DEV" da würds liegen, setup.sh ist das haupt script.

Hab das ganze sowieso wiederwillig offen damit ich die scripts Verbindungsunabhängig mit wget ziehen kann...
Mir ist sehr bewusst das das ganze vermutlich extrem stümperhaft ist aber wie gesagt, ich fang erst an mit lernenface-smile
Und fertig bin ich auch noch ned.
fredmy
fredmy 24.04.2022 um 16:37:26 Uhr
Goto Top
Hallo,
von der Sache her, kommen User-defined Zusatzaufgabenscripte eigentlich nach /usr/local/sbin .. wenn es denn allgemeine Scripte sind.
( weils auch typisch im PATH liegt)
Du kannst natürlich überall hin (kommt etewas auf Aufgabe und Verwenung an) und wie man es aufufen will.
Evtl. musst du es mit "vollem Namen" (also mit Pfad) aufrufen oder eben die PATH-Variable erweitern.

Fred
141128
141128 24.04.2022 um 17:47:53 Uhr
Goto Top
Das ist schonmal sehr gut zu wissen, vielen Dank.

Aber ich glaube das gilt vor allem für wiederkehrende Skripte oder solche die immer aufrufbar sein sollen oder?


Meine aktuelle Frage betrifft aber eher ein einmaliges Ding, also es wird nach dem aufsetzen von Arch einmal ausgeführt und kann dann wieder gelöscht werden, alle bleibenden Sachen würde das Script sowieso nochmal extra platzieren.
TK1987
TK1987 25.04.2022 aktualisiert um 16:35:11 Uhr
Goto Top
Moin,

du widersprichst dir ein wenig.
Zitat von @141128:
Ich suche ein Dir das ich benutzen könnte in dem alle Nutzer und Root rechte haben
muss wenn dann erstellt werden. Wo du diesen erstellst, bleibt dir überlassen.
das Hauptscript läuft mit Root rechten
Beachte: Normale Benutzer sollten NIEMALS(!!!) etwas verändern können, was mit Root-Rechten läuft.
Meine aktuelle Frage betrifft aber eher ein einmaliges Ding, also es wird nach dem aufsetzen von Arch einmal ausgeführt und kann dann wieder gelöscht werden, alle bleibenden Sachen würde das Script sowieso nochmal extra platzieren.
Wenn das Skript doch nur einmalig läuft; und anschließend sowieso wieder gelöscht wird - wieso müssen dann alle Benutzer Zugriff darauf haben?!

Gruß Thomas
141128
141128 25.04.2022 um 17:04:56 Uhr
Goto Top
Hi Thomas,

du hast recht, sorry, ich hab das ganze unklar formuliert.

Das Script läuft einmalig nach Installation.

Die suche nach dem Dir war eher so gemeint wo ich sowas generell platzieren sollte, das ich mir dann selber alle Ordner erstelle die ich brauche ist klar aber ich bin mir nicht ganz darüber klar welcher Pfad in Linux generell für sowas verwendet werden soll.

Der Teil mit alle User sollen zugriff haben ist dumm formuliert, mir ging es darum das ich bisher immer probleme mit Zugriffsrechten bekommen habe. Das Hauptscript muss mit root rechten aufgerufen werden aber einzelne Teile müssen als User laufen, darum meine ursprüngliche Frage wie ich da Konflikte vermeide.

Dankeface-smile
Lochkartenstanzer
Lösung Lochkartenstanzer 25.04.2022 um 17:08:47 Uhr
Goto Top
Zitat von @141128:

Die suche nach dem Dir war eher so gemeint wo ich sowas generell platzieren sollte, das ich mir dann selber alle Ordner erstelle die ich brauche ist klar aber ich bin mir nicht ganz darüber klar welcher Pfad in Linux generell für sowas verwendet werden soll.

Dann ist es doch klar: mach einfach ein temp-Verzeichnis o.ä. im "Setup-Directory" wo das ganz Zeug drin ist, was Du installieren willst.

lks
fredmy
fredmy 26.04.2022 um 09:06:32 Uhr
Goto Top
Zitat von @141128:

Der Teil mit alle User sollen zugriff haben ist dumm formuliert, mir ging es darum das ich bisher immer probleme mit Zugriffsrechten bekommen habe.

falsche Settings ?

Das Hauptscript muss mit root rechten aufgerufen werden aber einzelne Teile müssen als User laufen, darum meine ursprüngliche Frage wie ich da Konflikte vermeide.

wieso muss ein Teil als "als User" laufen ? (und der andere Teil als root )

das (jedes) Script tut etwas /soll tun - egal in welchem Userzusammenhang. Vermutlich stehst du evtl. mit den Recheten "aus Kriegsfuss" ?
Manchmal darf man sUID und sGID nutzen ... (dann läuft das Script eben in einem anderen User-ID bzw. Group-ID-Context - macht manchmal Sinn)

Fred
141128
141128 26.04.2022 um 09:31:15 Uhr
Goto Top
Die Hauptaufgabe des Skripts ist die Installation von Paketen mit pacman, dafür brauch ich root Rechte.

Ich möchte aber auch AUR Pakete bauen mit makepkg, zb yay. Makepkg weigert sich aber als Root zu laufen, darum hab ich das in extra mini Skripts ausgelagert die dann eben als User laufen müssen.

Wenn ich da was übersehe oder falsch mache lasse ich mich natürlich gern berichtigen, ich bin mir mit so ziemlich nix sicher was ich da mache😅


Dann ist es doch klar: mach einfach ein temp-Verzeichnis o.ä. im "Setup-Directory" wo das ganz Zeug drin ist, was Du installieren willst.

Sorry ich glaub ich stell mich blöd an aber wo macht man denn so ein Setup-Directory? Das ist der Teil der mir nicht klar ist...
TK1987
Lösung TK1987 26.04.2022 aktualisiert um 15:01:48 Uhr
Goto Top
Zitat von @141128:
Sorry ich glaub ich stell mich blöd an aber wo macht man denn so ein Setup-Directory?
Wo du den erstellst, spielt überhaupt keine Rolle. Kannst du auch direkt im Wurzelverzeichnis machen:
# Setup-Ordner erstellen
sudo mkdir /mysetup

# Alle Benutzer dürfen in Setup-Ordner lesen,schreiben und ausführen
sudo chmod -R 777 /mysetup
du kannst den auch im Homeverzeichnis eines Benutzers, oder einfach nur unter /home oder auch unter /opt, /media, /mnt, ... erstellen - prinzipiell vollkommen wurscht.

Gruß Thomas