User által indítható admin jogokkal dolgozó script

Sziasztok!

A következőt szeretném megvalósítani:

User a hálózaton hozzáfér egy mappához amihez írási joga is van.
User fájlokat másol fent említett mappába.
User elindít egy "valami"-t.
"Valami" hatására:

  1. A Windows Server 2012 a fenti mappából átmásolja az ott lévő nem rejtett mappákat és fájlokat a szerveren egy másik mappába amihez fenti Usernek nincs írási csak olvasási joga
  2. Az eredeti fájlokat tulajdonságát hiddenre változtatja

Sajnos viszonylag kezdő vagyok a szakmában és most túl sok időm nincs képezni magam.
Tudnátok esetleg megoldást javasolni? (Gondolom poweshell script)...

Előre is köszönök minden segítő hozzászólást!
Üdv
V.

Hozzászólások

szóval jól értem hogy alapvetően te egy privilege escalationt akarsz elérni?

"all submitted complaints will be forwarded to /dev/null for further investigation"
"ez ilyen hippi kommunás felfogás, ahogy Stallman sámán módjára dobol a nagy hasán, hogy GNU, free software, free as free beer."

Ha a usernek nincs joga írni, akkor a user által futtatott "valami" programnak sem lesz joga írni.

Ilyesmit legfeljebb úgy lehet elérni, hogy a "valami" nem mint normál program, hanem pl. Windows Service, IIS webapp, Scheduled task vagy valami egyéb módszerrel van beállítva egy másik user nevében, aminek már van joga írni a cél mappába. És az eredeti userednek meg van joga elindítani a Windows Service-t, IIS webapp-ot böngészővel megnyitni.

Mi az eredeti cél távolabbról megközelítve? Mit akarsz elérni ezzel a módszerrel? Valószínűleg van rá jobb megoldás.

A "klasszikus" megoldás a problémára, hogy a "valami" egy weboldal a szerveren, amit a júzer meglátogat browserből, kattint a megfelelő helyen, minek hatására a weboldal mögött a szerveren a megfelelő jogosultsággal futó kód elvégzi a feladatot.

Az a javaslatom, hogy egyelőre szakadj el a megoldástól és osszad meg az üzleti problémát, amit meg kell oldani.
Ugyanis Te egy adott megoldásban kérsz segítséget, de korántsem biztos, hogy az a megoldás a legjobb, aminek nekiálltál.

Üdv,
Marci

Nem tudom jól értelmeztem-e a felvetést, de mondjuk Batch-ban a runas paranccsal tudsz megadni olyat, hogy mely felhasználó személyében akarsz dolgozni. Alap esetben kéri a jelszót hozzá, de azt is át lehet passzoltatni neki (már nem emlékszem hogyan, rég használtam.

---
"Errors are red
My screen in blue
Someone help me
I've deleted Sys32"

Időzítve nem jó? Pl. percenként lefut a szerveren egy script, ami ezt megteszi. A szerveren futó script mehet bármilyen user-ként.
De az "elindít valami"-vel sem lehetetlen, pl. létrehoz a könyvtárban egy fájlt, ami jelzi a script-nek hogy indulhat, az meg a végén kitörli. Persze ehhez ugyanúgy kell időzítés, viszont a script lényegi része csak akkor fut le, ha a fájl már létezik.

A jó öreg szemafor vagy zászló lehet a megoldás.
A usernek nincs joga ahhoz amit te szeretnél, de van joga egy szemafort átállítani, vagy egy zászlót kitenni, amit a szerveren megfelelő a megfelelő jogosultsággal és megfelelő időnként lefutó szkript figyel és elvégzi azt amit szeretnél.
A szemafor vagy a zászló az lehet például egy bizonyos nevű fájl jelenléte egy konkrét könyvtárban.
Mondjuk a "Zászló" könyvtárban egy "Másold.Flag" nevű fájl. Amit a szerveren időnként lefutó szkript figyel és le is töröl, hogy ne induljon folyamatosan újra.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Zászló.... jééézusom, ettől megfájdult az agyam így kora reggel. Na, _ez_ az, amit én soha nem fordítanék le, még ha a user felé interfészként szolgál is (bár a fájlnál már te is .flag kiterjesztést használsz :) ).

És akkor a subscribe után most megyek és kerítek valami nyugtatót, hogy egy volt kolléga által elkövetett tűzwall alkalmazásnév emlékét valahogy újra törölni tudjam, ha már eszembe juttattad :(

Zászló... :(

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

az user felmásolja a fileokat a megadott helyre.
Létrehoz egy danke.txt-t

Van egy A scripted, ami lefut kb percenként 1x, ami keres egy danke.txt-t a megfelelő helyen.
írásvédetté teszi a danke.txt-t
Ha van, elindítja admin joggal B sciptet, ami befejezi a dolgaidat.
Ha a B végzett, akkor az A letörli a danke.txt-t és kész.

Én így csinálnám

Ha neked volnék 'sudo Windows'-ra googléznék, szerintem nem te vagy az első ezzel a kérdéssel.

Off: unix-ban (Aix/Linux) úgy csinálom ezt, hogy van ott egy wakeup nevű fájl, abba írjon valamit (bármit) a felhasználó. Ez nem fog sikerülni, mivel az igazából egy pipe. Mindenesetre a "túloldon" a 'cat wakeup' ettől felébred, és lefut a feldolgozó script.

> és lefut a feldolgozó script
Gondolom a usernek (aki a wakeup nevu fajlba barmit is ir), nincs joga modositani azt a "feldolgozó script"-et, amit a masok oldalon a cat wakeup triggerel. Ha meg nincs joga modositani, mehet ra egy sudo entry NOPASSWD-vel.

Amugy jopofa ez a pipe&cat megoldas :)
____________________
echo crash > /dev/kmem

A Windows Server 2012 a fenti mappából átmásolja az ott lévő nem rejtett mappákat és fájlokat a szerveren egy másik mappába amihez fenti Usernek nincs írási csak olvasási joga
Az eredeti fájlokat tulajdonságát hiddenre változtatja

Szigorúan erre a specifikációra:

[string]$semaphore = "C:\source\VO2max_exits.txt"
[string]$source = "C:\source\*"
[string]$target = "C:\target"

if (Test-Path $semaphore) {

#Konytar tartalmanak masolasa
Copy-Item -Path $source -Destination $target -recurse -Force

#Konyvtarban levo fajlok attributumanak modositasa
Get-ChildItem -path $source -Recurse -Force | foreach {$_.attributes = "Hidden"}

#Szemafor törlése
Remove-Item $semaphore -Confirm

}

Ments el és állítsd be a Task Scheduler-ben a PS futását a kívánt időzítéssel, úgy, hogy csak egy példányban futhasson, akkor is, ha a felhasználó nincs bejelentkezve:
https://community.spiceworks.com/how_to/17736-run-powershell-scripts-fr…

- Mivel nem foglalkozik azzal, hogy az előző futásnak mi lett az eredménye: minden fájlt újból másol és újból próbál jogosultságot állítani
- Felülírja a régi, azonos nevű fájlokat
- A Source helyen a Hidden attribútummal nem oldottad meg az olvasási jogosultság megvonását
- A példában C:\ meghajtó szerepel, ezzel vigyázz: ha túl nagy fájlokat másol, le tudja dögleszteni a szervert
- A művelet végén a script törli a szemafort, azt a feltöltőnek kell elhelyeznie
(- Nincs naplózás benne)

Szia,

Esetleg ezt megpróbálhatod: Csinálsz egy parancsikont az adott szkriptre. Parancsikonra jobb katt->tulajdonságok->parancsikon->speciális->futtatás rendszergazdaként. Elmented a rendszergizda adatait és ennyi. Továbbá a parancsikon biztonság fülén bepippantod, hogy az adott felhasználónak ne legyen módosítási joga a parancsikonra (sem módosítási, sem pedig jogosultság módosítási joga).

Vizsgára felkészülés végett keresek "kidobásra" szánt menedzselhető Cisco switch-eket és routereket, leginkább Pest és Bács-Kiskun megye területén.