NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: C# - Odebrání položky DACL u terminate

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Jakub Fridrich:9.6.2015 12:50

Zdravím

Potřeboval bych trošku poradit, jak odepřít oprávnění TERMINATE v DACL? Jde mi o to, aby proces nešel ukončit přes správce úloh ani nějaký jiný task manager. Když to udělám ručně přes processExplorer, tak není ani potřeba administrátorských práv. Tohoto bych nějak potřeboval docílit v C#, a myslím si, že by to mohlo jít.

Děkuji za každou radu.

 
Odpovědět
9.6.2015 12:50
Avatar
dirtyjobs
Člen
Avatar
dirtyjobs:9.6.2015 12:53

Pojmenuj ho stejně jako nějaký systémový proces, třeba "winlogon", pak by to jít nemělo. :)

 
Nahoru Odpovědět
9.6.2015 12:53
Avatar
Odpovídá na dirtyjobs
Jakub Fridrich:9.6.2015 12:57

Toto bylo řešení u nižších verzí windowsu, u windows 7 ani 8 už toto řešení nefunguje, protože si systém hlídá plné cesty k souborům. Ale před pár dny jsem to zkoušel v xp, a fungovalo, ovšem ale potřebuji poradit, jak to udělat pro novější OS :)

Editováno 9.6.2015 12:58
 
Nahoru Odpovědět
9.6.2015 12:57
Avatar
dirtyjobs
Člen
Avatar
Odpovídá na Jakub Fridrich
dirtyjobs:9.6.2015 13:08

Je to sice prasárna, ale nešlo by udělat, aby proces při vypnutí spustil jiný proces, který by ho zase zapnul?

 
Nahoru Odpovědět
9.6.2015 13:08
Avatar
Honza
Člen
Avatar
Honza:9.6.2015 13:13

Něco podobného jsem taky potřeboval a nepodařilo se mi to vyřešit tímto způsobem, tak jsem na to šel z jiné strany. Daný proces jsem označil jako kritický což má za následek že systém spadne a objeví se modrá smrt. Asi to není úplně ideální, ale v mém případě to posloužilo dobře, protože každý uživatel zkusil shodit aplikaci maximálně jednou a pak si to už nedovolil :)

Popis jak na to je zde: http://www.dotnetportal.cz/…cesy-systemu

Nahoru Odpovědět
9.6.2015 13:13
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Honza
Člen
Avatar
Odpovídá na dirtyjobs
Honza:9.6.2015 13:15

Nápad to je zajímavý, ale je otázka jestli při zavolání TERMINATE bude vůbec čas na spuštění vedlejšího procesu. Další věci je že i kdyby se to podařilo, neuložená data budou nejspíš v tahu.

Editováno 9.6.2015 13:17
Nahoru Odpovědět
9.6.2015 13:15
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Odpovídá na dirtyjobs
Jakub Fridrich:9.6.2015 13:16

Tohoto bych se chtěl vyvarovat právě. Napadlo mě udělat to jako službu, ale toho bych se chtěl také vyvarovat. Co jsem vygooglil a dověděl se, je opravdu odebrání DACL položky terminate, ovšem jak to udělat v C# to už se nikde nedočteme. Zmíněný processExplorer toto dokáže i bez administrátorských práv. Takže předpokládám, pokud něco jde udělat v C++ (nebo v čem je psaný processExplorer), tak to pravděpodobně půjde i v C#.

 
Nahoru Odpovědět
9.6.2015 13:16
Avatar
Odpovídá na Honza
Jakub Fridrich:9.6.2015 13:23

Když to zkusíš v tom processExploreru, tak to nastavíš a zakážeš terminate, a pak už ten proces prostě neukončíš. Ti to bude psát, že nemáš oprávnění ukončit proces, a žádný vedleješí proces se při tom nepouští právě. Jak si to přesně myslel?

 
Nahoru Odpovědět
9.6.2015 13:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.