2017-01-30 2 views
1

Ich versuche, ein Verzeichnis auf dem Server über eine Mina-Deployer Skript erstellen, aber die Shell zeigt Berechtigung verweigert.Wie erstelle ich ein Verzeichnis ohne root-Berechtigung?

Der Befehl lautet:

mkdir -p /monit && chown ubuntu: /monit && chmod u+w . /monit 

Und der Fehler ist:

Mkdir: unable to create directory "/ monit": Permission denied 

queue 'echo "-----> Create Monit dir"' 
queue echo_cmd "mkdir -p #{config_path}/monit && chown #{user}:#{group} #{config_path}/monit && chmod u+w . #{config_path}/monit" 
+0

Warum gibt es einen Platz in der Ausgabe? Auch wenn Sie Verzeichnisse im Root erstellen, müssen Sie 'root' über' sudo' oder eine andere Methode sein. – tadman

+0

@tadman der Speicherplatz stammt von der Parameterwarteschlange 'echo' -----> Create Monit dir '' Warteschlange echo_cmd "mkdir -p # {Konfigurationspfad}/monit && chown # {Benutzer}: # {Gruppe} # {Konfigurationspfad }/monit && chmod u + w. # {Konfig_Pfad}/monit " überwacht.jede do | p | path = "# {Konfigurationspfad}/monit/# {p}" Warteschlange echo_cmd "mkdir -p # {Pfad} && chown # {Benutzer}: # {Gruppe} # {Pfad} && chmod u + w. # { Pfad} " – japoowf

+0

@Tadman: Du hast Recht. Plus, "Mkdir" hat einen Großbuchstaben * M *. Entweder hat das OP nicht Copy & Paste verwendet, um die Fehlermeldung anzuzeigen, oder die Nachricht stammt nicht von dieser Anweisung. Ich schätze, es ist Ersteres. – user1934428

Antwort

3

Wenn Sie nicht dazu berechtigt sind, dann haben Sie keine Berechtigung haben. Sie können entweder:

  • Die Datei an anderer Stelle erstellen.
  • Führen Sie den Befehl als ein anderer Benutzer (über sudo, su, oder Anmelden als sie), die die entsprechende Berechtigung hat.
  • Passen Sie die Berechtigungen des einschließenden Verzeichnisses an (aber seien Sie vorsichtig, da / und andere Orte aus gutem Grund ihre Berechtigungen haben).
+0

Ich habe die Erlaubnis. aber ich erstelle aus Bereitstellung Skript Warteschlange 'Echo "-----> Create Monit dir"' Warteschlange echo_cmd "mkdir -p # {config_path}/monit && chown # {Benutzer}: # {group} # {config_path}/monit && chmod + w. # {config_path}/monit " überwacht.jede do | p | path = "# {Konfigurationspfad}/monit/# {p}" Warteschlange echo_cmd "mkdir -p # {Pfad} && chown # {Benutzer}: # {Gruppe} # {Pfad} && chmod u + w. # { Pfad} " – japoowf

+0

@japoowf - Wenn Ihre Frage zu Ihrem Skript gehört, fügen Sie Ihr Skript in Ihre Frage ein. Schreiben Sie solche Dinge nicht in Kommentare - die Formatierung ist schrecklich, und andere werden relevante Details vermissen. – ghoti

Verwandte Themen