Windows aplikace s administrátorským opravněním

Windows aplikace s administrátorským opravněním
« kdy: 10. 02. 2022, 20:14:56 »
Neorientuji se úplně na windows platformě:

Mám aplikaci v pythonu, která se v případě potřeby spustí sama znovu
s administrátorskými opravněními (po dotazu na UAC).
Stejně to funguje i po přeložení do exe pomocí pyinstaller-u.

Funguje to, ale je to komplikované.

Moje otázka: Je možné pomocí "Inno Setup" nainstalovat
tuto aplikaci tak, aby se následně spouštěla a běžela
bez UAC dotazu s administrátorskými opravněními?


Re:Windows aplikace s administrátorským opravněním
« Odpověď #1 kdy: 10. 02. 2022, 20:56:55 »
Legitimní cesta podle mě přesně pro váš případ neexistuje. Co se týče těch nelegitimních, tak můžete mrknout sem
https://github.com/hfiref0x/UACME

Pokud aplikace jen běží na pozadí, můžeete ji nainstalovat jako službu (a pak si v podstatě můžete oprávnění zvolit), případně i i dovolit, aby ji mohli spouštět i běžní uživatelé (viz např. služba Fax).

Re:Windows aplikace s administrátorským opravněním
« Odpověď #2 kdy: 10. 02. 2022, 21:39:06 »
Legitimní cesta podle mě přesně pro váš případ neexistuje. Co se týče těch nelegitimních, tak můžete mrknout sem
https://github.com/hfiref0x/UACME

Pokud aplikace jen běží na pozadí, můžeete ji nainstalovat jako službu (a pak si v podstatě můžete oprávnění zvolit), případně i i dovolit, aby ji mohli spouštět i běžní uživatelé (viz např. služba Fax).

1) Ad github: nerad bych zabředl ještě hlouběji do něčeho čemu moc nehovím.
2) Jako služba asi ne, měla by to být GUI aplikace.
Ale díky.

Re:Windows aplikace s administrátorským opravněním
« Odpověď #3 kdy: 10. 02. 2022, 21:48:59 »
Služba ve Windows může mít i GUI, ale myslím, že pak zase nemůže běžet s administrátorskými oprávněními.

Podle mne je jediné schůdné řešení takové, že budete mít běžnou aplikaci s GUI, vedle ní službu s administrátorským oprávněním, a ty dvě aplikace mezi sebou budou nějak komunikovat.

Re:Windows aplikace s administrátorským opravněním
« Odpověď #4 kdy: 10. 02. 2022, 23:25:03 »
Služba ve Windows může mít i GUI, ale myslím, že pak zase nemůže běžet s administrátorskými oprávněními.

Podle mne je jediné schůdné řešení takové, že budete mít běžnou aplikaci s GUI, vedle ní službu s administrátorským oprávněním, a ty dvě aplikace mezi sebou budou nějak komunikovat.

Služba běží v kontextu toho účtu, který jí nastavíš jako provozní při instalaci. A GUI aplikace s ní může komunikovat mnoha způsoby, např skrze pojmenované fronty (named pipes), nebo přes TCP/IP na portu, který si ta služba otevře a poslouchá na něm. Nebo klidně přes textový soubor, pokud se budeš chtít za uchem drbat cizí nohou.


Re:Windows aplikace s administrátorským opravněním
« Odpověď #5 kdy: 11. 02. 2022, 07:36:22 »
P.S. UAC je aktivní pouze pro interaktivně přihlášené uživatele.

Re:Windows aplikace s administrátorským opravněním
« Odpověď #6 kdy: 14. 02. 2022, 20:31:18 »
Děkuji všem za reakce, bo sem občas trochu mimo.
Ale došlo mi že moje úvaha byla od začátku vadná: kdyby celá aplikace jela jako
admin, tak bych se nedostal na samba disky, protože ty jsou viditelné jen pro
uživatele který si je připojil.
A sdílené disky nastavené adminovi vyšumí (jak mám odzkoušeno) po odlášení uživatele.

Takže to asi budu pytlíkovat jako doposud.
Hrozně se mi líbilo pojmenování techniky komunikace přes stdout (a stderr) jako "drbat se za uchem cizí nohou"!
To sedí, ale budu si sugerovat, že je to moje vlastní noha :-))

Re:Windows aplikace s administrátorským opravněním
« Odpověď #7 kdy: 14. 02. 2022, 22:56:07 »
Služba ve Windows může mít i GUI, ale myslím, že pak zase nemůže běžet s administrátorskými oprávněními.

Podle mne je jediné schůdné řešení takové, že budete mít běžnou aplikaci s GUI, vedle ní službu s administrátorským oprávněním, a ty dvě aplikace mezi sebou budou nějak komunikovat.

Tohle je podle mě správné řešení - tj. GUI + služba:

  • k čemu chci přistupovat jako uživatel, to bude v GUI
  • k čemu jako admin tak to bude v té službě

Ani samba pak nebude problém  :D

Re:Windows aplikace s administrátorským opravněním
« Odpověď #8 kdy: 15. 02. 2022, 19:49:03 »
Hrozně se mi líbilo pojmenování techniky komunikace přes stdout (a stderr) jako "drbat se za uchem cizí nohou"!

stdout/stderr jsem zrovna nemyslel; šlo mi o to, nastínit maximálně absurdní čistě technicky vzato funkční způsob, takže jsem opravdu měl na mysli textový soubor pohozený někam na náhodné místo do filesystému :-)
BTW v době, kdy jsem ještě chodil do školy, platilo, že pokud je to možné, dobře udělané GUI je "jen" "hezký" ksicht pro plně funkční konzolovku nebo službu, aby ji šlo automatizovat a ovládat z jakékoli jiné aplikace, včetně eventuálně uživatelem vytvořeného vlastního GUI.


Re:Windows aplikace s administrátorským opravněním
« Odpověď #10 kdy: 16. 02. 2022, 17:32:03 »
Malo by to ísť:
http://woshub.com/how-to-disable-uac-for-specific-applications/
To způsobí, že se nezobrazí UAC dialog, ale aplikace nezíská vyšší oprávnění.

Re:Windows aplikace s administrátorským opravněním
« Odpověď #11 kdy: 16. 02. 2022, 18:01:05 »
Malo by to ísť:
http://woshub.com/how-to-disable-uac-for-specific-applications/
To způsobí, že se nezobrazí UAC dialog, ale aplikace nezíská vyšší oprávnění.

Neskúšal som to, ale za pokus to stojí. Ak to dobre chápem, uvádzajú tam, že užívateľ nezíska vyššie oprávnenia v zmysle, že by mal práva napr. na súbory, ktoré patria administrátorovi, len to deaktivuje UAC (pokiaľ viem, UAC nefunguje ako v linuxe sudo, že by to menilo užívateľa, pod ktorým spúša proces). Prečo by tam inak dávali príkad s regeditom?

Iný tip som videl, že spúštať aplikáciu automaticky cez windows scheduler po prihlásení (ak vyhovuje, že beží vždy a nezatvára sa). Je to stále jednoduchšie, ako robiť servis a komunikovať s ním.

Re:Windows aplikace s administrátorským opravněním
« Odpověď #12 kdy: 16. 02. 2022, 18:53:08 »
Neskúšal som to, ale za pokus to stojí. Ak to dobre chápem, uvádzajú tam, že užívateľ nezíska vyššie oprávnenia v zmysle, že by mal práva napr. na súbory, ktoré patria administrátorovi, len to deaktivuje UAC (pokiaľ viem, UAC nefunguje ako v linuxe sudo, že by to menilo užívateľa, pod ktorým spúša proces). Prečo by tam inak dávali príkad s regeditom?
Ano, uživatel tím nezíská vyšší oprávnění. Má tedy smysl to používat akorát v případě, kdy uživatel nepotřebuje získávat vyšší oprávnění (protože už potřebná vyšší oprávnění z nějakého důvodu má). Příklad s regeditem je tam proto, protože na něm je hezky vidět, že na své klíče se uživatel stále dostane, ale když se pokusí editovat systémové klíče (Local Machine), nepodaří se mu to, protože nemá dostatečná oprávnění.

Re:Windows aplikace s administrátorským opravněním
« Odpověď #13 kdy: 16. 02. 2022, 21:06:53 »
Pokud ten počítač máte pod kontrolou, je možné UAC i úplně vypnout.
https://diit.cz/clanek/windows-8-spustit-jako-admin-vse