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: