2017-04-24 6 views
-1

Ich definierte eine Funktion, die die letzten Befehle von einem bestimmten Benutzer zurückgeben. Dies ist der Code:Centos 7-flask Erteilen Sie Berechtigungen, um Bash-Verlauf von anderen Benutzern zu sehen

def user_commands(user): 
    line = "/home/"+user+"/.bash_history" 
    commands = Popen([ "tail", line], stdout=PIPE, stderr=PIPE).communicate()[0].split('\n') 
    return commands 

Aber es funktioniert nur mit meinem Benutzer Python

enter image description here

Wenn ich einen anderen Benutzer verwenden es mir die Liste der Befehle zeigen tut.

enter image description here

Ich denke, weil es Berechtigungen müssen die bash_history von anderen Nutzern zu sehen. Was kann ich tun, wenn ich möchte, dass es mit allen Benutzern funktioniert?

+0

Könnten Sie die Fehler schreiben Sie bekommen, was Sie erwarten, was passiert eigentlich, wie sie sich unterscheiden, etc in Text statt verschwommen Offsite Links? – pvg

+0

@pvg Ich arbeite mit Kolben und ich möchte ein Skript erstellen, die mir die Liste der Befehle von einem bestimmten Benutzer anzeigen. Mein Problem ist, dass es nur von einem Benutzer funktioniert: Python, das ist der eigentliche Benutzer, wenn ich mein Python-Skript ausführe. Wenn ich in meinem Browser einen anderen Benutzer einfüge, wie in diesem Beispiel mit dem Benutzer root http://192.168.56.101:8080/v1.0/users/root/commands, erscheint kein Befehl. Ich erwarte, dass der Browser mir die Liste der Befehle vom Benutzer root zeigt, wie es für Python funktioniert. Ich muss auf die bash_history von anderen Benutzern zugreifen und dann zeigen Sie ihre Befehle im Browser mit meinem Skript mit Kolben –

+0

Alle zusätzlichen Details sollten in Ihre Frage bearbeitet werden. Bitte fügen Sie sie dort hinzu. – pvg

Antwort

0

Das klingt wie ein Berechtigungsproblem. Stellen Sie sicher, dass der Benutzer, der das Skript ausführt, berechtigt ist, auf die Bash-Verlaufsdatei zuzugreifen.

Die schnelle und schmutzige Antwort ist, das Skript als root auszuführen.

Eine bessere Idee könnte sein, einen Cron-Job auszuführen, um die benötigten Informationen zu sammeln und in ein Verzeichnis zu stellen, auf das das Skript zugreifen kann.

0

Dank es ein Berechtigungsproblem war, löste ich das Hinzufügen dieser Befehle:

chown -R python /home 
chown -R u+rX /home 
+0

Das scheint wie ein riesiges Sicherheitsloch. – pvg

Verwandte Themen