Wie setze ich das temporäre Dateiverzeichnis für den sed-Befehl in Linux?

8

Ich habe ein Bash-Skript, das die Datei so modifiziert hat

%Vor%

und ich habe dieses Skript von der Webanwendung ausgeführt. sed-Befehl erstellt eine temporäre Datei in diesem Verzeichnis, aber der Benutzer, unter dem die Webanwendung arbeitet, hat keine Berechtigungen zum Erstellen von Dateien in diesem Verzeichnis. Ich möchte dem Benutzer keine weiteren Berechtigungen für diesen Ordner erteilen. Ist es möglich, den Speicherort der temporären Datei für den sed-Befehl anzugeben?

Ich bin neu in Linux, tut mir leid, wenn meine Frage zu einfach ist, aber ich habe keine Lösung gefunden.

Danke!

    
Radislav 22.11.2013, 13:36
quelle

5 Antworten

3

Die Datei muss über eine temporäre Datei geändert werden, das ist tatsächlich, was sed tat, aber es fehlten die Berechtigungen.

Wenn wir uns mit einer solchen Situation beschäftigen, machen wir diesen Prozess einfach manuell.

%Vor%     
TechZilla 04.12.2014 19:07
quelle
1

Sie können die Inline-Bearbeitung immer vermeiden:

%Vor%

Aber ich warne einen Web-Benutzer, der /etc/postfix/virtual ziemlich riskant bearbeitet.

    
anubhava 22.11.2013 13:39
quelle
1

AFAIK, du kannst sed dafür nicht konfigurieren. Also müssen Sie Ihren Befehl mit den erforderlichen Berechtigungen ausführen.

  • Erstellen Sie ein Skript mit dem Namen update-postfix (es kann Argumente haben) und fügen Sie es in / usr / local / bin

    ein %Vor%
  • Erstelle eine Datei in /etc/sudoers.d/ (wie auch immer der Name lautet, kann es update-postfix oder etwas allgemeineres sein) und ersetze _user _ durch den Aufruf deines Skripts:

    %Vor%

    Es erlaubt _user _ update-postfix (und nur diesen Befehl) als root

    auszuführen
  • Rufen Sie in Ihrem Skript sudo update-postfix helloworld anstelle des Befehls sed auf. Das Update-Postfix-Skript wird als Root-Benutzer aufgerufen.

NB: Als solches aufgerufen, hat Ihr Skript (update-postfix) das Recht, alles zu tun, also seien Sie vorsichtig, was Sie eingeben, und bereinigen Sie die Argumente (was ich hier aus Platzgründen nicht getan habe) / strong>

    
Pierre-Olivier Vares 13.05.2016 13:05
quelle
0

Einfache benutzerdefinierte temporäre Dateilösung, ähnlich der Lösung von @techzilla für diejenigen, die die Falle nicht verwenden möchten -

%Vor%

Je nachdem, was @EdwinW gesagt hat, wird die Datei nicht über die Eingabe mit cat entfernt, so dass die Schreibberechtigungen für die Datei bestehen bleiben.

    
storm_m2138 13.10.2016 20:45
quelle
0

Sie könnten "Schwamm" verwenden.

%Vor%     
Harold Zoid 14.03.2018 15:31
quelle

Tags und Links