Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Linux: chmod in Shell Script

sudofuck
Anfänger (offline)

Dabei seit 07.2014
3 Beiträge
Geschrieben am: 11.07.2014 um 00:42 Uhr

Hallo,

zuerst: Ich bin nicht der große Profi in Linux.

Ich betreibe eine kleine Seite mit Symfony (derzeit nur lokal) auf einem Server mit Ubuntu 12.04. Eingeloggt bin ich per SSH als normaler Nutzer. Dieser hat sich dann mit sudo su als root angemeldet. Soweit, so gut.

Ich möchte ein kleines Skript schreiben, das dafür sorgt, dass alle Dateien die richtigen Attribute haben. Hier das Skript:


Zitat:


#!/bin/bash

chown -R www-data:www-data portal
echo Besitzrechte wurden auf www-data:www-data geaendert

chmod -R 755 portal
echo Zugriffsrechte wurden auf 755 geaendert

php portal/bin/console cache:clear --env=dev
echo Dev-Cache wurde geloescht

php portal/bin/console cache:clear --env=prod
echo Prod-Cache wurde geloescht


Wenn ich dieses Skript mit ./setup (so heißt es) ausführe, werden aber die Besitzrechte nicht geändert? Ebenso die Zugriffsrechte. Führe ich die Befehle jeweils direkt in der Konsole aus, klappt es wunderbar. Aber ich will das Ganze automatisieren.

setup wurde mit chmod +x setup ausführbar gemacht.

Was mache ich falsch? Bin jetzt seit fast 2 Stunden dran und komme auf keinen grünen Zweig...

Lg
-neulich- - 37
Anfänger (offline)

Dabei seit 12.2012
1 Beitrag
Geschrieben am: 11.07.2014 um 09:08 Uhr

Spontan fallen mir 2 Dinge auf:
Grundsätzlich müssen alle echo-strings so aussehen:

Zitat:

echo "foo bar"

Außerdem solltest du darauf achten, dass die relativen Pfade stimmen; Also deine setup.sh so liegt, dass auch alle Ordner im gleichen Verzeichnis liegen. Ich nehme an, das ist der Fall?

Kannst du mal posten, welchen Fehler die Konsole zurückgibt? Zur Fehlersuche kannst du das Skript außerdem zeilenweise mit # auskommentieren. Dann weißt du immerhin schon mal, wo es hakt.
TheBrainless - 37
Experte (offline)

Dabei seit 04.2005
1992 Beiträge

Geschrieben am: 11.07.2014 um 22:44 Uhr

oder du fügst an die erste zeile ein -x hinzu, dann wird jede ausgeführte zeile auf der konsole ausgegeben. damit lässt sich auch einiges eingrenzen.

Mörps mörps blubbs!

sudofuck
Anfänger (offline)

Dabei seit 07.2014
3 Beiträge
Geschrieben am: 12.07.2014 um 00:03 Uhr

Zitat von -neulich-:

Spontan fallen mir 2 Dinge auf:
Grundsätzlich müssen alle echo-strings so aussehen:

Zitat:

echo "foo bar"

Außerdem solltest du darauf achten, dass die relativen Pfade stimmen; Also deine setup.sh so liegt, dass auch alle Ordner im gleichen Verzeichnis liegen. Ich nehme an, das ist der Fall?

Kannst du mal posten, welchen Fehler die Konsole zurückgibt? Zur Fehlersuche kannst du das Skript außerdem zeilenweise mit # auskommentieren. Dann weißt du immerhin schon mal, wo es hakt.


Danke für Deine Antwort.

Das mit dem Echo habe ich behoben.

setup.sh liegt unter /var/www/html des Apache. Der Ordner portal, der bearbeteitet werden soll, liegt unter /var/www/html/portal/.

Die Ausgabe von "pwd" im Skript ist /var/www/html. Das sollte also passen.

/var/www/html hat den Owner root und den Modus 777.

Es gibt überhaupt keine Fehlerausgabe. Das Skript läuft einwandfrei durch, alle echos werden ausgeführt. Allerdings sind halt die Rechte danach die gleichen wie vor der Ausführung.

Zitat:

oder du fügst an die erste zeile ein -x hinzu, dann wird jede ausgeführte zeile auf der konsole ausgegeben. damit lässt sich auch einiges eingrenzen.

Nichts auffälliges

sudofuck
Anfänger (offline)

Dabei seit 07.2014
3 Beiträge
Geschrieben am: 12.07.2014 um 02:03 Uhr

Ich habe den Fehler. Das Kommando von Symfony war schuld! Das ändert sebst die Besitzrechte vom cache... Und da ich immer als root ausgeführt habe, wurde auch symfony als root ausgeführt. somit war immer root der Besitzer und nicht www-data
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2025 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -