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 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):