refs #631 - Modify updateTrashInfo.py

pull/1/head
Gerardo GIl Elizeire 2024-08-21 13:19:35 +02:00
parent 99bd49d730
commit cbba3388fc
1 changed files with 24 additions and 0 deletions

View File

@ -16,6 +16,8 @@ No recibe ningún parámetro, y no necesita ser llamado explícitamente (porque
# -------------------------------------------------------------------------------------------- # --------------------------------------------------------------------------------------------
import os import os
import pwd
import grp
import json import json
import subprocess import subprocess
import shutil import shutil
@ -34,6 +36,23 @@ info_file = '/opt/opengnsys/etc/trashinfo.json'
# -------------------------------------------------------------------------------------------- # --------------------------------------------------------------------------------------------
def create_trash_folder():
""" Crea el directorio correspondiente a la papelera, y le asigna propietarios y permisos.
Evidentemente, esta función solo es llamada cuando no existe el directorio.
"""
# Obtenemos el UID del usuario "root" y el GID del grupo "opengnsys":
uid = pwd.getpwnam('root').pw_uid
gid = grp.getgrnam('opengnsys').gr_gid
# Creamos el directorio correspondiente a la papelera:
os.mkdir(trash_path)
# Asignamos el usuario y el grupo propietarios del directorio:
os.chown(trash_path, uid, gid)
# Asignamos permisos "775" al directorio :
os.chmod(trash_path, 0o775)
def create_empty_json(): def create_empty_json():
""" Esta función crea el archivo "trashinfo.json", con la estructura básica que debe contener. """ Esta función crea el archivo "trashinfo.json", con la estructura básica que debe contener.
Evidentemente, solo es llamada cuando no existe el archivo. Evidentemente, solo es llamada cuando no existe el archivo.
@ -236,6 +255,11 @@ def remove_from_json():
def main(): def main():
""" """
""" """
# Comprobamos si existe el directorio correspondiente a la papelera, y en caso contrario lo creamos:
if not os.path.exists(trash_path):
print("Creating trash folder...")
create_trash_folder()
# Comprobamos si tenemos permisos de escritura sobre el directorio que contiene el archivo "trashinfo.json" # Comprobamos si tenemos permisos de escritura sobre el directorio que contiene el archivo "trashinfo.json"
# ("/opt/opengnsys/etc"), y en caso contrario lanzamos una excepción: # ("/opt/opengnsys/etc"), y en caso contrario lanzamos una excepción:
if not os.access(os.path.dirname(info_file), os.W_OK): if not os.access(os.path.dirname(info_file), os.W_OK):