From a51ce078374a49b9c2a6eafde1261a83cd1b7d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Fri, 5 Sep 2025 09:25:16 +0200 Subject: [PATCH] dodatkowe poprawki i funkcje --- app.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index 6fae5d8..02b6176 100644 --- a/app.py +++ b/app.py @@ -186,11 +186,13 @@ def writeHostsAtomic(new_content: str, path: str = "/etc/hosts", backup_dir: str """ Zapisuje plik atomowo: - tworzy kopię zapasową (z timestampem) jeśli backup_dir podane, - - zapis do pliku tymczasowego + fsync + rename(). + - zapis do pliku tymczasowego + fsync + rename(), + - ustawia chmod 644 na docelowym pliku. Zwraca info o backupie i ścieżkach. """ from tempfile import NamedTemporaryFile info = {"path": path, "backup": None} + # kopia zapasowa if backup_dir: os.makedirs(backup_dir, exist_ok=True) @@ -207,6 +209,13 @@ def writeHostsAtomic(new_content: str, path: str = "/etc/hosts", backup_dir: str os.fsync(tmp.fileno()) tmp_name = tmp.name os.replace(tmp_name, path) + + # ustaw poprawne prawa + try: + os.chmod(path, 0o644) + except Exception as e: + logger.warning(f"Nie udało się ustawić chmod 644 na {path}: {e}") + return info def computeUnifiedDiff(old_text: str, new_text: str, fromfile="/etc/hosts(old)", tofile="/etc/hosts(new)") -> str: