diff --git a/py_scripts/updateTrashInfo.py b/py_scripts/updateTrashInfo.py index 233f6dd..a82677a 100644 --- a/py_scripts/updateTrashInfo.py +++ b/py_scripts/updateTrashInfo.py @@ -16,6 +16,8 @@ No recibe ningún parámetro, y no necesita ser llamado explícitamente (porque # -------------------------------------------------------------------------------------------- import os +import pwd +import grp import json import subprocess 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(): """ 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. @@ -236,6 +255,11 @@ def remove_from_json(): 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" # ("/opt/opengnsys/etc"), y en caso contrario lanzamos una excepción: if not os.access(os.path.dirname(info_file), os.W_OK):