staging.inyokaproject.org

per Bash Text ersetzen

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

lombas

Anmeldungsdatum:
9. April 2008

Beiträge: 43

Hallo, ich versuche meine öffentliche IP-Adresse hinzufügen (siehe Code), leider bekomme ich diese Fehlermeldung :

sed: couldn't open temporary file /home/user/rsync_bk/sed6b0YeV: permission denied

geht es nicht per Script oder mache ich was falsch?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

mountordner=/home/user/rsync_bk/
user=user
server='123.456.78.90'
sshkey=/home/user/.ssh/id_rsa
addr=$(wget -q -O - http://checkip.dyndns.org | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')


fernordner=/etc/apache2/mods-enabled/



datei=$mountordner"evasive.conf"

sudo sshfs -p 22221 $user@$server:$fernordner $mountordner -o IdentityFile=$sshkey
echo $addr
if mountpoint -q $mountordner 
   then
     sleep 7
     sudo sed -i -e 15c'DOSWhitelist '$addr'' $datei
fi
sudo cat /home/user/rsync_bk/evasive.conf
sudo fusermount -u $mountordner

danke im voraus

lombas

(Themenstarter)

Anmeldungsdatum:
9. April 2008

Beiträge: 43

hat jemand eine Idee wie kann es schaffen?

TomLu

Anmeldungsdatum:
23. August 2014

Beiträge: 603

lombas schrieb:

... oder mache ich was falsch?

Ja, die völlig unreflektierte Verwendung von sudo im Script... und das hat in dieser Art und Weise überhaupt nichts in einem Script zu suchen, wird eigentlich auch nicht benötigt und sorgt schlimmstenfalls nur für ein Rechte-Mischmasch und damit einhergehend mit unvorhersehbarem Verhalten.

Sofern ein Script root-Rechte benötigt, sollte man es besser selber mit root-Rechten starten. Und dabei ist zu berücksichtigen, dass lokale root-Berechtigungen absolut gar nix mit root-Berechtigungen auf einem remote-System zu tun haben... und die man mit "sudo" also auch nicht mitgeben kann.

Du solltest Dich mal mit der tatsächlichen Zielsetzung von sudo befassen... das ist jedenfalls kein Statement zur obligatorischen Verwendung, ohne darüber nachzudenken.

dajohb

Anmeldungsdatum:
29. Januar 2016

Beiträge: 166

den User mit dem du per sshfs gemountet hat, hat keine Schreibreichte.

1
sudo sshfs -p 22221 $user@$server:$fernordner $mountordner -o IdentityFile=$sshkey

Logge dich auf mit $user auf $server und überprüft, ob du Schreibreicht auf $fernordner hast.

lombas

(Themenstarter)

Anmeldungsdatum:
9. April 2008

Beiträge: 43

TomLu, danke für die Lehre, dajohb, ich werde mit dem sshfs versuchen,

danke.

dajohb

Anmeldungsdatum:
29. Januar 2016

Beiträge: 166

lombas schrieb:

TomLu, danke für die Lehre, dajohb, ich werde mit dem sshfs versuchen,

danke.

damit keine Missverständnis da sind, sshfs ist kein User, sondern der Befehl mit dem du über ssh mein Verzeichnis von Server mountet. Laut Script oben, ist dein user=user. Entweder nimmst du ein andere User, der die benötigen Rechte auf Server hast. Oder die ändern mit chown/chmod die Berechtigung für den "user", damit er darauf schreiben kann.

Antworten |