ubuntuusers.de

Skript nur als root ausführbar

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

linux_is_a_wasteland

Anmeldungsdatum:
11. April 2018

Beiträge: Zähle...

Hallo ich habe ein python Skript, dass die ausgabe eines Befehls filtert und das Datum des letzten Updates in Sekunden ausgibt.

1
2
3
4
5
6
7
8
9
root@server:/usr/local/bin# /opt/sophos-av/bin/savdstatus --version
Copyright 1989-2017 Sophos Limited. All rights reserved.
Sophos Anti-Virus       = 9.x.x
Build Revision          = 2634748
Threat detection engine = 3.69.2
Threat data             = 5.48
Threat count            = 45219768
Threat data release     = Di 06 Feb 2018 00:00:00 
Last update             = Do 01 Mär 2018 15:33:01 CET

Das Python Skript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/usr/bin/python3
import datetime
import fileinput
import locale


locale.setlocale(locale.LC_ALL, '')

for line in fileinput.input():
    if line.startswith('Last update'):
        date_string = line.split(' = ')[-1].strip()
        dt = datetime.datetime.strptime(date_string, '%a %d %b %Y %H:%M:%S %Z')
        print(int(dt.timestamp()))
        break

Das Problem ist nur, das ich bei der Ausführung des Skripts nur als root User eine Ausgabe erhalte, als normaler User aber nicht.

1
2
root@server:/usr/local/bin# ls -la parse_date.py 
-rwxr-x--x 1 prtgmonitor prtgmonitor 355 Apr 12 16:30 parse_date.py

Ich habe schon sämtliche Ausführrechte und nutzer/gruppen vergeben, kann den Fehler jedoch nicht finden

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4712

Wohnort: Berlin

@linux_is_a_wasteland: Enthält das als Benutzer ausgeführt eventuell die Last update-Zeile nicht? Lass Dir die Zeilen doch einfach mal ausgeben. Und ich würde speziell bei so etwas die Locale nicht auf das einstellen was der jeweilige Benutzer gerade verwendet, sondern grundsätzlich auf die C-Locale, damit man sicher sein kann in welcher Sprache die Ausgaben sind.

Antworten |