Python WindowsError: [Error 5] åkomst nekad

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Python WindowsError: [Error 5] åkomst nekad

Hej,

Har stött på lite problem, försöker ändra namn på en fil som befinner sig i "C:\Program Files\" men får nekad åtkomst (Error 5) går det att komma runt detta på något sätt?

Så här ser min kod ut:

self.kodiSkinPath = xbmc.translatePath("special://skin/") def showVidOsdFix(self): if xbmcvfs.exists(os.path.join(self.kodiSkinPath, 'xml/')): x = 'xml' elif xbmcvfs.exists(os.path.join(self.kodiSkinPath, '720p/')): x = '720p' elif xbmcvfs.exists(os.path.join(self.kodiSkinPath, '1080i/')): x = '1080i' elif xbmcvfs.exists(os.path.join(self.kodiSkinPath, '16x9/')): x = '16x9' if ADDON.getSetting('start_video_minimalized') == 'false': try: f = os.path.join(self.kodiSkinPath, x, 'DialogSeekBar.xml') f2 = os.path.join(self.kodiSkinPath, x, 'DialogSeekBar.disabled') os.rename(f, f2) except: deb('IOError: [Errno 5] Permission denied') finally: None else: try: f = os.path.join(self.kodiSkinPath, x, 'DialogSeekBar.xml') f2 = os.path.join(self.kodiSkinPath, x, 'DialogSeekBar.disabled') os.rename(f2, f) except: deb('IOError: [Errno 5] Permission denied') finally: None

Intel Core i7-8700K | ASUS STRIX Z370-F | Corsair Vengeance LED 16GB | ASUS STRIX 1080 Ti OC |
Noctua NH-U12A | Corsair Q400 | Corsair AX1200W | Corsair Strafe RGB | Corsair M65 RGB ELITE

Trädvy Permalänk
Medlem
Registrerad
Jul 2015

Om du inte redan provat det, kan det fungera att köra scriptet som administratör?

Trädvy Permalänk
Medlem
Registrerad
Jun 2005
Skrivet av keyless:

Om du inte redan provat det, kan det fungera att köra scriptet som administratör?

Det är det jag helst vill undvika, att köra scriptet som admin fungerar prima men jag vill inte starta det som admin var gång.

Intel Core i7-8700K | ASUS STRIX Z370-F | Corsair Vengeance LED 16GB | ASUS STRIX 1080 Ti OC |
Noctua NH-U12A | Corsair Q400 | Corsair AX1200W | Corsair Strafe RGB | Corsair M65 RGB ELITE

Trädvy Permalänk
Medlem
Plats
Varberg
Registrerad
Jan 2011

Du kanske kan lägga till rättigheter för användaren som ska köra scriptet,

vet inte riktigt hur det fungerar i Windows men du borde kunna ge läs/skrivrättigheter till enkilda filer och mappar till en specifik användare.

Trädvy Permalänk
Medlem
Plats
Stenungsund
Registrerad
Okt 2007

Att skriva till \Program Files kräver normalt sett admin, så alternativet är nog att andra rättigheter.

- none -

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Kan man inte tvinga att ändra filnamnet i Python? Allt annat är inte relevant känns det som.

Skickades från m.sweclockers.com

Intel Core i7-8700K | ASUS STRIX Z370-F | Corsair Vengeance LED 16GB | ASUS STRIX 1080 Ti OC |
Noctua NH-U12A | Corsair Q400 | Corsair AX1200W | Corsair Strafe RGB | Corsair M65 RGB ELITE

Trädvy Permalänk
Medlem
Plats
Varberg
Registrerad
Jan 2011

Formulera om din fråga, det går nog inte att komma undan att ändra rättigheter utan något fult hack

https://mywiki.wooledge.org/XyProblem

Trädvy Permalänk
Hedersmedlem
Plats
Uppsala
Registrerad
Jul 2001

Om du inte ska köra som en användare med rättigheter att skriva där (dvs admin) så måste du istället ge din användare rättigheter.
Högerklicka på mappen (self.kodiSkinPath) i utforskaren -> egenskaper -> Säkerhet. Lägg till din användare och ge de rättigheter som krävs.

X370 Taichi / R7 1700 @ 3.75 GHz 1.2 V / 48 GB 3200 MHz CL14 / MSI GTX 1070 Gaming, OC / Samsung 960 EVO 500 GB / Corsair RM650x
LG G6 (H870)

Trädvy Permalänk
Medlem
Registrerad
Jun 2005
Skrivet av Thomas:

Om du inte ska köra som en användare med rättigheter att skriva där (dvs admin) så måste du istället ge din användare rättigheter.
Högerklicka på mappen (self.kodiSkinPath) i utforskaren -> egenskaper -> Säkerhet. Lägg till din användare och ge de rättigheter som krävs.

Jag vill kunna ge rättigheterna via scriptet då det inte ska köras lokalt.

Tanken är att använda något i stil med os.chmod men får det inte att fungera.
https://docs.python.org/3/library/os.html

Intel Core i7-8700K | ASUS STRIX Z370-F | Corsair Vengeance LED 16GB | ASUS STRIX 1080 Ti OC |
Noctua NH-U12A | Corsair Q400 | Corsair AX1200W | Corsair Strafe RGB | Corsair M65 RGB ELITE

Trädvy Permalänk
Hedersmedlem
Plats
Uppsala
Registrerad
Jul 2001

Om du ska ändra rättigheter på något du inte redan har rättigheter till så måste programmet ha administratörsrättigheter; det går inte att komma runt på något (vettigt) OS. I de fall det går är det ett säkerhetshål som behöver patchas.

Om det gick så skulle vilket program som helst kunna modifiera andra program, läsa andra användares privata filer, lägga in malware i Windows-mappen och så vidare.

X370 Taichi / R7 1700 @ 3.75 GHz 1.2 V / 48 GB 3200 MHz CL14 / MSI GTX 1070 Gaming, OC / Samsung 960 EVO 500 GB / Corsair RM650x
LG G6 (H870)

Trädvy Permalänk
Medlem
Registrerad
Jun 2005
Skrivet av skyw00lker:

Formulera om din fråga, det går nog inte att komma undan att ändra rättigheter utan något fult hack

https://mywiki.wooledge.org/XyProblem

Tack, ibland blir det lättare att hitta en annan väg.

Intel Core i7-8700K | ASUS STRIX Z370-F | Corsair Vengeance LED 16GB | ASUS STRIX 1080 Ti OC |
Noctua NH-U12A | Corsair Q400 | Corsair AX1200W | Corsair Strafe RGB | Corsair M65 RGB ELITE