source: client/engine/PostConfEACLib.py @ f160ff2

test-python-scriptsticket-693
Last change on this file since f160ff2 was 7260bdc2, checked in by Antonio Emmanuel Guerrero Silva <aguerrero@…>, 9 months ago

refs #585 Libraries convert to Python3

  • Property mode set to 100644
File size: 19.2 KB
Line 
1from engine.SystemLib import *
2
3def ogLoadHiveWindows():
4    FUNCNAME = ogLoadHiveWindows.__name__
5    # Variables locales.
6    PART = None
7    DISK = None
8
9    # Si se solicita, mostrar ayuda.
10    if len(sys.argv) > 1 and sys.argv[1] == "help":
11        ogHelp(FUNCNAME, f"{FUNCNAME} int_ndisk int_partition", f"{FUNCNAME} 1 1")
12        return
13
14    # Error si no se reciben 2 parámetros.
15    if len(sys.argv) != 3:
16        return ogRaiseError(OG_ERR_FORMAT)
17
18    DISK = int(sys.argv[1])
19    PART = int(sys.argv[2])
20
21    # Comprobaciones redundantes: borrar"
22    # ogDiskToDev(DISK, PART) or return ogRaiseError(OG_ERR_PARTITION, "particion de windows no detectada")
23    # ogGetOsType(DISK, PART).startswith("Windows") or return ogRaiseError(OG_ERR_NOTOS, "no es windows")
24    # VERSION = ogGetOsVersion(DISK, PART)
25    # Fin Comprobaciones redundantes: borrar"
26
27    # primera fase, carga de los hive del sistema
28    if ogGetPath(DISK, PART, "WINDOWS"):
29        SYSTEMROOT = "Windows"
30    elif ogGetPath(DISK, PART, "WINNT"):
31        SYSTEMROOT = "winnt"
32    else:
33        return ogRaiseError(OG_ERR_NOTOS, "version windows no detectada")
34
35    hiveSAM = ogGetPath(DISK, PART, f"/{SYSTEMROOT}/system32/config/SAM")
36    if hiveSAM:
37        os.environ["hiveSAM"] = hiveSAM
38    else:
39        return ogRaiseError(OG_ERR_NOTOS, "hive SAM no detectada")
40
41    hiveSYSTEM = ogGetPath(DISK, PART, f"/{SYSTEMROOT}/system32/config/system")
42    if hiveSYSTEM:
43        os.environ["hiveSYSTEM"] = hiveSYSTEM
44    else:
45        return ogRaiseError(OG_ERR_NOTOS, "hive SYSTEM no detectada")
46
47    hiveSOFTWARE = ogGetPath(DISK, PART, f"/{SYSTEMROOT}/system32/config/software")
48    if hiveSOFTWARE:
49        os.environ["hiveSOFTWARE"] = hiveSOFTWARE
50    else:
51        return ogRaiseError(OG_ERR_NOTOS, "hive SOFTWARE no detectada")
52
53    os.environ["TEMPhive"] = "/tmp/tmpregistry"
54
55    # segunda fase, carga de los hive de usuarios windows.
56    COUNT = 3
57    # TODO WINDOWS XP WINDOWS7
58    BASEHOMEDIR = ogGetPath(DISK, PART, "/Documents and Settings")
59    TMPUSERFILE = "/tmp/WuserRegAndDAT.tmp"
60    with open(TMPUSERFILE, "w") as f:
61        f.write("\n".join(glob.glob(f"{BASEHOMEDIR}/**/NTUSER.DAT", recursive=True)))
62
63    LISTUSERS = subprocess.check_output(["drbl-chntpw", "-l", hiveSAM]).decode().splitlines()
64    LISTUSERS = [user.split("<")[1].split(">")[0] for user in LISTUSERS if "RID" in user]
65
66    for user in LISTUSERS:
67        # Comprobamos que el usuario registrado tiene .DAT
68        if HOMEDIR := next((line for line in open(TMPUSERFILE) if user in line), None):
69            os.environ[user] = f"hiveUSER{COUNT}"
70            os.environ[f"hiveUSER{COUNT}"] = HOMEDIR.strip()
71            COUNT += 1
72
73    COUNT = 0
74
75def ogUpdateHiveWindows():
76    FUNCNAME = ogUpdateHiveWindows.__name__
77    # Variables locales.
78    PART = None
79    DISK = None
80    FILE = None
81
82    # TODO detectar llamada a ogLoadHiveWindows
83
84    # Si se solicita, mostrar ayuda.
85    if len(sys.argv) > 1 and sys.argv[1] == "help":
86        ogHelp(FUNCNAME, f"{FUNCNAME} ", f"{FUNCNAME}  ")
87        return
88
89    subprocess.call(["drbl-chntpw", "-f", os.environ["TEMPhive"], os.environ["hiveSAM"], os.environ["hiveSYSTEM"], os.environ["hiveSOFTWARE"], os.environ["hiveUSER3"], os.environ["hiveUSER4"], os.environ["hiveUSER5"], os.environ["hiveUSER6"], os.environ["hiveUSER7"], os.environ["hiveUSER8"], os.environ["hiveUSER9"]])
90
91    os.remove(os.environ["TEMPhive"])
92
93    del os.environ["hiveSAM"]
94    del os.environ["hiveSYSTEM"]
95    del os.environ["hiveSOFTWARE"]
96    del os.environ["TEMPhive"]
97    del os.environ["hiveUSER3"]
98    del os.environ["hiveUSER4"]
99    del os.environ["hiveUSER5"]
100    del os.environ["hiveUSER6"]
101    del os.environ["hiveUSER7"]
102    del os.environ["hiveUSER8"]
103    del os.environ["hiveUSER9"]
104
105def ogHiveNTRunMachine():
106    FUNCNAME = ogHiveNTRunMachine.__name__
107    # Variables locales.
108    PART = None
109    DISK = None
110    FILE = None
111
112    # Si se solicita, mostrar ayuda.
113    if len(sys.argv) > 1 and sys.argv[1] == "help":
114        ogHelp(FUNCNAME, f"{FUNCNAME} PathScripts|command keyName",
115                f"{FUNCNAME} c:\\\\Windows\\\\crearusuarios.cmd scripts_crearUsuarios",
116                f"{FUNCNAME} \"cmd /c del c:\ogboot.*\" ogcleanboot",
117                f"{FUNCNAME} Requiere la previa ejecución de ogLoadHive int_disk int_part",
118                f"{FUNCNAME} Despues requiere el ogUpdateHive")
119        return
120
121    # Error si no se reciben al menos 1 parámetros.
122    if len(sys.argv) != 3:
123        return ogRaiseError(OG_ERR_FORMAT)
124
125    with open(os.environ["TEMPhive"], "a") as f:
126        f.write(f"h 2\ncd \\Microsoft\\Windows\\CurrentVersion\\Run\nnv 1 {sys.argv[2]}\ned {sys.argv[2]}\n{sys.argv[1]}\n")
127
128def ogNTPolUserOn():
129    FUNCNAME = ogNTPolUserOn.__name__
130    # Variables locales.
131    PART = None
132    DISK = None
133    FILE = None
134
135    # Si se solicita, mostrar ayuda.
136    if len(sys.argv) > 1 and sys.argv[1] == "help":
137        ogHelp(FUNCNAME, f"{FUNCNAME} id_hive_user", f"{FUNCNAME} NombreUsuario", f"{FUNCNAME}")
138        return
139
140    # TODO: error si no se ha llamado previamente a ogLoadHiveWindows
141    if "hiveSAM" not in os.environ:
142        return ogRaiseError(OG_ERR_FORMAT, "se debe utilizar primero la utilidad ogLoadHiveWindows")
143
144    # TODO: error si el usuario no tiene cuenta en windows.
145    if subprocess.call(["drbl-chntpw", "-l", os.environ["hiveSAM"]], stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.decode().count(f"RID: {sys.argv[1]}") == 0:
146        return ogRaiseError(OG_ERR_FORMAT, f"el usuario {sys.argv[1]} no tiene cuenta en este windows: Compruebe mayusculas o minusculas")
147
148    # TODO: error si no el usario no no tiene HIVE asociado.
149    if sys.argv[1] not in os.environ:
150        return ogRaiseError(OG_ERR_FORMAT, "el usuario no tiene hive creado")
151
152    HIVEID = os.environ[sys.argv[1]].replace("hiveUSER", "")
153
154    # echo "IMPORTANTE:  la variable HiveUser3=/mnt/windows/Document/\ and/\ Seeting\alumnmos\NTUSER.dat"
155    print(HIVEID)
156    # cp /var/EAC/admin/utilswin/Fondo.BMP ${particion}/WINDOWS/
157
158    with open(os.environ["TEMPhive"], "a") as f:
159        f.write(f"h {HIVEID}\n")
160        f.write("cd \\Control Panel\\Desktop\n")
161        f.write("ed Wallpaper\n")
162        f.write("C:\\WINDOWS\\fondo.bmp\n")
163        f.write("\n")
164        f.write("cd \\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\n")
165        f.write("nk Explorer\n")
166        f.write("cd Explorer\n")
167        f.write("\n")
168        f.write("nv 4 NoDesktop\n")
169        f.write("ed NoDesktop\n")
170        f.write("1\n")
171        f.write("\n")
172        f.write("nv 4 NoSimpleStartMenu\n")
173        f.write("ed NoSimpleStartMenu\n")
174        f.write("1\n")
175        f.write("nv 4 NoWindowsUpdate\n")
176        f.write("ed NoWindowsUpdate\n")
177        f.write("1\n")
178        f.write("\n")
179        f.write("nv 4 NoSMConfigurePrograms\n")
180        f.write("ed NoSMConfigurePrograms\n")
181        f.write("1\n")
182        f.write("\n")
183        f.write("nv 4 NoChangeStartMenu\n")
184        f.write("ed NoChangeStartMenu\n")
185        f.write("1\n")
186        f.write("\n")
187        f.write("nv 4 Intellimenus\n")
188        f.write("ed Intellimenus\n")
189        f.write("1\n")
190        f.write("\n")
191        f.write("nv 4 NoRun\n")
192        f.write("ed NoRun\n")
193        f.write("1\n")
194        f.write("\n")
195        f.write("nv 4 NoRecentDocsHistory\n")
196        f.write("ed NoRecentDocsHistory\n")
197        f.write("1\n")
198
199def NTChangeName():
200    if len(sys.argv) == 1:
201        print("sintaxis: NTChangeName str_$var")
202        print("ejemplos: NTChangeName adi${IPcuatro}-xp")
203        return
204
205    with open(os.environ["TEMPhive"], "a") as f:
206        f.write("h 1\n")
207        f.write("ed ControlSet001\\Control\\ComputerName\\ComputerName\\ComputerName\n")
208        f.write(sys.argv[1] + "\n")
209        f.write("ed ControlSet001\\Services\\Tcpip\\Parameters\\Hostname\n")
210        f.write(sys.argv[1] + "\n")
211        f.write("ed ControlSet001\\Services\\Tcpip\\Parameters\\NV Hostname\n")
212        f.write(sys.argv[1] + "\n")
213        f.write("h 2\n")
214        f.write("cd \\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\n")
215        f.write("ed DefaultDomainName\n")
216        f.write(sys.argv[1] + "\n")
217
218def NTSetGroupName(group_name):
219    if len(sys.argv) == 1:
220        print("sintaxis: NTSetGroupName str_$var")
221        print("ejemplos: NTSetGroupName adi")
222        return
223
224    with open(os.environ["TEMPhive"], "a") as f:
225        f.write("h 2\n")
226        f.write("ed \\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultDomainName\n")
227        f.write(group_name + "\n")
228
229def NTSetOwner(owner, organization):
230    if len(sys.argv) == 1:
231        print("sintaxis: NtSetOwner str_propietario str_organizacion")
232        print("ejemplos: NTSetOwner eu\\ politecnica universidad\\ de\\ malaga")
233        return
234
235    with open(os.environ["TEMPhive"], "a") as f:
236        f.write("h 2\n")
237        f.write("ed \\Microsoft\\Windows NT\\CurrentVersion\\RegisteredOwner\n")
238        f.write(owner + "\n")
239        f.write("ed \\Microsoft\\Windows NT\\CurrentVersion\\RegisteredOrganization\n")
240        f.write(organization + "\n")
241
242def NTAutoLogon():
243    if len(sys.argv) == 1:
244        print("sintaxis: NTAutoLogon int_Activar int_nves str_usuario str_passwd str_equipo")
245        print("ejemplos: NTAutoLogon 1 2 administrador 3451 $equipo")
246        print("IMPORTANTE: cuando AutoLogonCount llegue a 0, activa el AutoAdminLogon a 0. Pero no borra los valores de DefaultPassword")
247        return 2
248
249    with open(os.environ["TEMPhive"], "a") as f:
250        f.write("hive 2\n")
251        f.write("cd \\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\n")
252        f.write(f"nv 1 AutoAdminLogon\n")
253        f.write(f"ed AutoAdminLogon\n")
254        f.write(f"{sys.argv[1]}\n")
255        f.write(f"nv 1 AutoLogonCount\n")
256        f.write(f"ed AutoLogonCount\n")
257        f.write(f"{sys.argv[2]}\n")
258        f.write(f"nv 1 DefaultUserName\n")
259        f.write(f"ed DefaultUserName\n")
260        f.write(f"{sys.argv[3]}\n")
261        f.write(f"nv 1 DefaultDomainName\n")
262        f.write(f"ed DefaultDomainName\n")
263        f.write(f"{sys.argv[5]}\n")
264
265        if sys.argv[4] == "none":
266            f.write("dv DefaultPassword\n")
267        else:
268            f.write(f"nv 1 DefaultPassword\n")
269            f.write(f"ed DefaultPassword\n")
270            f.write(f"{sys.argv[4]}\n")
271
272def NTStatusRatonTeclado():
273    if len(sys.argv) == 1:
274        print("sintaxis: NTStatusRatonTeclado int_StatusRaton int_StatusTeclado")
275        print("ejemplos: NTStatusRatonTeclado 1 4")
276        return 2
277
278    with open(os.environ["TEMPhive"], "a") as f:
279        f.write("hive 1\n")
280        f.write("cd \\ControlSet001\\Services\\Mouclass\n")
281        f.write("ed Start\n")
282        f.write(sys.argv[1] + "\n")
283        f.write("cd \\ControlSet001\\Services\\Kbdclass\n")
284        f.write("ed Start\n")
285        f.write(sys.argv[2] + "\n")
286
287def NTRunOnceMachine():
288    if len(sys.argv) == 1:
289        print("sintaxis: NTRunOnceMachine PathScripts idScripts")
290        print("ejemplo: NTRunOnceMachine c:\\\\WINDOWS\\\\crearusuarios.bat scripts1")
291        print("IMPORTANTE: el path debe llevar dos barras \\, pero como se deben 'escapar' debes poner cuatro \\\\")
292        return 2
293
294    with open(os.environ["TEMPhive"], "a") as f:
295        f.write("h 2\n")
296        f.write("cd \\Microsoft\\Windows\\CurrentVersion\\RunOnce\n")
297        f.write(f"nv 1 {sys.argv[2]}\n")
298        f.write(f"ed {sys.argv[2]}\n")
299        f.write(f"{sys.argv[1]}\n")
300
301def NTRunMachine():
302    if len(sys.argv) == 1:
303        print("sintaxis: NTRunMachine PathScripts idScripts")
304        print("ejemplo: NTRunMachine c:\\\\WINDOWS\\\\crearusuarios.bat scripts1")
305        print("IMPORTANTE: el path debe llevar dos barras \\, pero como se deben 'escapar' debes poner cuatro \\\\")
306        return 2
307
308    with open(os.environ["TEMPhive"], "a") as f:
309        f.write("h 2\n")
310        f.write("cd \\Microsoft\\Windows\\CurrentVersion\\Run\n")
311        f.write(f"nv 1 {sys.argv[2]}\n")
312        f.write(f"ed {sys.argv[2]}\n")
313        f.write(f"{sys.argv[1]}\n")
314
315def NTRunUser():
316    if len(sys.argv) == 1:
317        print("sintaxis: str_PathWINScripts str_idScripts Int_hive||$usuario")
318        print("ejemplo: c:\\\\WINDOWS\\\\crearusuarios.bat scripts1 3")
319        print("IMPORTANTE: el pathWIN debe llevar dos barras \\, pero como se deben 'escapar' debes poner cuatro \\\\")
320        print("IMPORTANTE: el pathLinux si lleva espacios debe escaparse con una barra \\")
321        print("IMPORTANTE Int_hive: 3 para el primer usuario, 4 para el segundo usuario")
322        print("requiere export un HiveUser3=/mnt/windows/Document\\ and\\ Seeting\\alumnmos\\NTUSER.dat")
323        return 2
324
325    with open(os.environ["TEMPhive"], "a") as f:
326        f.write(f"h {sys.argv[3]}\n")
327        f.write("cd \\Software\\Microsoft\\Windows\\CurrentVersion\\Run\n")
328        f.write(f"nv 1 {sys.argv[2]}\n")
329        f.write(f"ed {sys.argv[2]}\n")
330        f.write(f"{sys.argv[1]}\n")
331
332def NTPolUserOn():
333    if len(sys.argv) == 1:
334        print("sintaxis: NTPolUserOn Int_hive")
335        print("ejemplo: NTPolUserOn 3")
336        print("IMPORTANTE: la variable HiveUser3=/mnt/windows/Document/ and/ Seeting/alumnmos/NTUSER.dat")
337        return 2
338
339    with open(os.environ["TEMPhive"], "a") as f:
340        f.write(f"h {sys.argv[1]}\n")
341        f.write("cd \\Control Panel\\Desktop\n")
342        f.write("ed Wallpaper\n")
343        f.write("C:\\WINDOWS\\fondo.bmp\n")
344        f.write("\n")
345        f.write("cd \\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\n")
346        f.write("nk Explorer\n")
347        f.write("cd Explorer\n")
348        f.write("\n")
349        f.write("nv 4 NoDesktop\n")
350        f.write("ed NoDesktop\n")
351        f.write("1\n")
352        f.write("\n")
353        f.write("nv 4 NoSimpleStartMenu\n")
354        f.write("ed NoSimpleStartMenu\n")
355        f.write("1\n")
356        f.write("nv 4 NoWindowsUpdate\n")
357        f.write("ed NoWindowsUpdate\n")
358        f.write("1\n")
359        f.write("\n")
360        f.write("nv 4 NoSMConfigurePrograms\n")
361        f.write("ed NoSMConfigurePrograms\n")
362        f.write("1\n")
363        f.write("\n")
364        f.write("nv 4 NoChangeStartMenu\n")
365        f.write("ed NoChangeStartMenu\n")
366        f.write("1\n")
367        f.write("\n")
368        f.write("nv 4 Intellimenus\n")
369        f.write("ed Intellimenus\n")
370        f.write("1\n")
371        f.write("\n")
372        f.write("nv 4 NoRun\n")
373        f.write("ed NoRun\n")
374        f.write("1\n")
375        f.write("\n")
376        f.write("nv 4 NoRecentDocsHistory\n")
377        f.write("ed NoRecentDocsHistory\n")
378        f.write("1\n")
379
380def NTPolUserOFF(hive):
381    if len(sys.argv) == 1:
382        print("sintaxis: NTPolUserOFF Int_hive")
383        print("ejemplo: NTPolUserOFF 3")
384        print("IMPORTANTE: la variable HiveUser3=/mnt/windows/Document/ and/ Seeting/alumnmos/NTUSER.dat")
385        return 2
386
387    with open(os.environ["TEMPhive"], "a") as f:
388        f.write(f"h {hive}\n")
389        f.write("cd \\Control Panel\\Desktop\n")
390        f.write("ed Wallpaper\n")
391        f.write("C:\\WINDOWS\\web\\wallpaper\\Felicidad.bmp\n")
392        f.write("\n")
393        f.write("cd \\Software\\Microsoft\\Windows\\CurrentVersion\\\n")
394        f.write("rdel Policies\n")
395        f.write("nk Policies\n")
396        f.write("1\n")
397
398def ogSetWindowsChkdisk():
399    if len(sys.argv) == 1:
400        print("sintaxis: true|TRUE|0 false|false|1")
401        print("ejemplos: int=0 desactivado int=1 activado")
402        return 2
403
404    valor = ""
405    if sys.argv[1] in ["0", "true", "TRUE"]:
406        valor = "autocheck autochk *"
407    elif sys.argv[1] in ["1", "false", "FALSE"]:
408        valor = "none"
409    else:
410        return 0
411
412    with open(os.environ["TEMPhive"], "a") as f:
413        f.write("hive 1\n")
414        f.write("cd \\ControlSet001\\Control\\Session Manager\n")
415        f.write("ed BootExecute\n")
416        f.write(valor + "\n")
417        f.write("--n\n")
418
419def NTStartRecovery():
420    if len(sys.argv) == 1:
421        print("sintaxis: Int-Status")
422        print("ejemplos: int=0 desactivado int=1 activado")
423        return 2
424
425    valor = ""
426    if sys.argv[1] == "0":
427        valor = "none"
428    elif sys.argv[1] == "1":
429        valor = "00000000"
430    else:
431        return 0
432
433    with open(os.environ["TEMPhive"], "a") as f:
434        f.write("hive 2\n")
435        f.write("#cd \\Policies\\Microsoft\\Windows\\WinRE\n")
436        f.write("#ed DisableSetup\n")
437        f.write("cd \\Policies\\Microsoft\\Windows\n")
438        f.write("nk WinRE\n")
439        f.write("nv 4 DisableSetup\n")
440        f.write("ed DisableSetup\n")
441        f.write(valor + "\n")
442        f.write("--n\n")
443
444def ogSchrootLinux():
445    FUNCNAME = ogSchrootLinux.__name
446    # Variables locales.
447    PART = None
448    DISK = None
449    DIRCONF = "/etc/schroot"
450
451    # Si se solicita, mostrar ayuda.
452    if len(sys.argv) > 1 and sys.argv[1] == "help":
453        ogHelp(FUNCNAME, f"{FUNCNAME} int_ndisk int_partition", f"{FUNCNAME} 1 1")
454        return
455
456    # Error si no se reciben 2 parámetros.
457    if len(sys.argv) != 3:
458        return ogRaiseError(OG_ERR_FORMAT)
459
460    DISK = int(sys.argv[1])
461    PART = int(sys.argv[2])
462
463    VERSION = ogGetOsVersion(DISK, PART)
464    if "Linux" not in VERSION:
465        return ogRaiseError(OG_ERR_NOTOS, "no es linux")
466
467    ogUnmount(DISK, PART) or return ogRaiseError(OG_ERR_NOTOS, "no es linux")
468
469    SCHROOTDEVICE = ogDiskToDev(DISK, PART)
470
471    os.remove(f"{DIRCONF}/mount-defaults")
472    os.remove(f"{DIRCONF}/schroot.conf")
473
474    with open(f"{DIRCONF}/mount-defaults", "w") as f:
475        f.write("# <file system> <mount point>   <type>  <options>       <dump>  <pass>\n")
476        f.write("proc            /proc           proc    defaults        0       0\n")
477        f.write("/dev            /dev            none    rw,bind         0       0\n")
478        f.write("/dev/pts        /dev/pts        none    rw,bind         0       0\n")
479        f.write("/dev/shm        /dev/shm        none    rw,bind         0       0\n")
480
481    with open(f"{DIRCONF}/schroot.conf", "w") as f:
482        f.write("[linux]\n")
483        f.write(f"description={VERSION}\n")
484        f.write("type=block-device\n")
485        f.write(f"device={SCHROOTDEVICE}\n")
486
487    subprocess.call(["schroot", "-c", "linux"])
488    subprocess.call(["schroot", "-end-sessiona", "--all-sessions"])
489
490def ogDiskToRelativeDev(int_disk, int_partition=None):
491    FUNCNAME = ogDiskToRelativeDev.__name__
492    if int_partition is None:
493        # Sintaxis1: IdPartition int_disk
494        # Ejemplo1: IdPartition 1 -> sda
495        return ogDiskToDev(int_disk)
496    else:
497        # Sintaxis2: IdPartition int_disk int_partition
498        # Ejemplo2: IdPartition 1 2 -> sda2
499        return ogDiskToDev(int_disk) + str(int_partition)
500   
501def ogDeletePartitionsLabels():
502    FUNCNAME = ogDeletePartitionsLabels.__name__
503    # Si se solicita, mostrar ayuda.
504    if len(sys.argv) > 1 and sys.argv[1] == "help":
505        ogHelp(FUNCNAME, f"{FUNCNAME}", f"{FUNCNAME}")
506        return
507
508    subprocess.call(["rm", "/dev/disk/by-label/*"])
509
510def ogInfoCache():
511    info = subprocess.check_output(["df", "-h"]).decode()
512    info = info.split("\n")
513    for line in info:
514        if "$OGCAC" in line:
515            infoFilesystem = line.split()[0]
516            infoSize = line.split()[1]
517            infoUsed = line.split()[2]
518            infoAvail = line.split()[3]
519            infoUsedPorcet = line.split()[4]
520            infoMountedOn = line.split()[5]
521            break
522    else:
523        return
524
525    if os.path.exists(f"{OGCAC}{OGIMG}"):
526        os.chdir(f"{OGCAC}{OPENGNSYS}")
527        content = subprocess.check_output(["find", "images/", "-type", "f"]).decode()
528        os.chdir("/")
529        print(info)
530        print(content)
531        print(" ")
532    else:
533        print(info)
Note: See TracBrowser for help on using the repository browser.