# problem: scp und rechte

## andi_s

hallo,

ich will von postfix ein skript ausfuehren lassen, wenn eine mail an einen bestimmten empfaenger geht.

am ende des skriptes will ich out.txt per scp auf einen anderen rechner kopieren

```

scp /tmp/out.txt root@192.168.1.77:/tmp/out.txt

```

das funktioniert auch alles bis auf die o.g. zeile.

wobei der scp befehl ohne passwortabfrage (key ist in authorized_keys) funktioniert, wenn ich ihn als root ausfuehre.

hat jemand eine idee wie ich dieses rechte-problem loesen kann? (su und sudo fragen ja nach nem passwort)

danke

----------

## Finswimmer

Die passwortlose Verbindung muss mit dem Nutzer gehen, mit dem du auch das Skript ausführst.

Das wird nicht root sein, evtl. postfix. Tausche mit dem User die keyfile aus und es sollte gehen.

Tobi

----------

## andi_s

hallo,

erstmal danke fuer die antwort, aber ich habe hier immernoch mit einem rechte-problem zu kaempfen.

ich habe nun alles auf den postfix-user umgestellt. wenn ich mich als postfix einlogge und das skript ausfuehre, dann funktioniert alles wie gewuenscht.

sende ich aber postfix eine mail, dann wird zwar auch /tmp/out.txt erzeugt, allerdings gehoert die datei nobody:nogroup und scp kann die datei wegen fehlender zugriffsrechte nicht kopieren.

irgendwie stehe ich echt auf dem schlauch...

muss ich jetzt alles auf nobody umstellen und hoffen das es klappt?Last edited by andi_s on Thu Feb 17, 2011 8:48 am; edited 1 time in total

----------

## Finswimmer

Nö.

Ich denke nicht.

Wie wird denn die Datei erzeugt? Normalerweise sollte sie dem User gehören, der sie erzeugt...?

----------

## andi_s

hmm,

also ich erzeuge die datei so:

```

file="/tmp/out.txt"

touch $file

echo "..." >> $file

```

vorher hatte ich das touch weggelassen - ist aber kein unterschied.

auf grund deiner frage dachte ich dann auch das problem haette eine andere ursache.

das skript wird ueber /etc/aliases ausgefuehrt (|...) und der alias-user existierte nicht. also habe ich den user angelegt, ssh entsprechend eingerichtet und gehofft das postfix das skript als dieser user ausfuehrt (was auch logisch waere) , aber auch das hat nicht funktioniert... die erzeugte datei /tmp/out.txt gehoert immernoch nobody:nogroup

man kann per /etc/aliases die mail auch direkt in eine datei ausgeben lassen. die datei gehoert dann nobody:nogroup

also irgendwie sind die rechte immer so, dass nur root die noetigen rechte hat, aber das skript wird offensichtlich nicht als root ausgefuehrt.

hier die manpage dazu: http://www.postfix.org/aliases.5.html

----------

## Finswimmer

Hilft ein chmod +r out.txt in dem Skript?

Dann hättest du wenigstens mit anderen Usern Lesezugriff.

----------

## andi_s

 *Finswimmer wrote:*   

> Hilft ein chmod +r out.txt in dem Skript?
> 
> Dann hättest du wenigstens mit anderen Usern Lesezugriff.

 

leider nicht... out.txt hat wie gehabt nur rw by owner

vermutlich muss ich dann wohl per crontab jede minute checken ob /tmp/out.txt existiert und so die datei per scp rueberkopieren, aber das gefaellt mir nicht weil der rechner ziemlich schwach ist - ich brauche eine loesung, die wirklich nur dann aktiv ist, wenn eine entsprechende mail reinkommt.

die zugriffsrechte an sich sind ja nicht das problem - mein problem ist das scp aus diesem skript heraus nicht funktioniert, da es scheinbar als nobody ausgefuehrt wird.

----------

## disi

Vielleicht kannst du etwas mit der .profile fuer postfix tricksen und dann die umask=0000 oder so setzen?

//edit: oder wenn der Rechner sowieso nichts anderes macht und keine Sicherheit braucht, default umask in /etc/profile auf 0000 setzen?  :Very Happy: 

//edit: pder in the mount options: http://linux.die.net/man/8/mount

 *Quote:*   

> umask=value
> 
>     Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value is given in octal. 

 

----------

## pablo_supertux

 *andi_s wrote:*   

> 
> 
> sende ich aber postfix eine mail, dann wird zwar auch /tmp/out.txt erzeugt, allerdings gehoert die datei nobody:nogroup und scp kann die datei wegen fehlender zugriffsrechte nicht kopieren.
> 
> 

 

kann es sein, dass dein Skript vom User nobody ausgeführt wird? Mach doch mal

```

file="/tmp/out.txt" 

touch $file 

echo "..." >> $file

env >> $file

```

und schau dir, was unter USER steht.

----------

