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

 ( VO2max | 2018. november 15., csütörtök - 19:04 )

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ás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

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

+1

Tipikus, hogy valaki nem a problémáját ossza meg, hanem a hibás megoldását.

+1
Ráadásul szörnyen hangzik a dolog, biztosan van rá értelmes megoldás ha meglenne a probléma.


return signResponse.getSignForUser("zeletrik").map(SignResolvable::getSign).orElse(StringUtils.EMPTY);

Tegyük fel, hogy a probléma a következő: Jocó feltölti a fájlokat, de a feldolgozás nem az ő dolga, nem is tartozik rá, nem is kell lássa a korábban feltöltött fájlokat sem.

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)

A nyugtató szerintem nem lesz elég, ha ilyen kicsinység miatt is felhúzod magad!
Nem akartam флаг-et írni! :D
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Zuhatag! Fomorzsa! Szurke kod! (mindegyik letezo forditas volt)

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

rep (vissza-per)

A visszavágás jobb lenne?
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

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

sftp-n nincs 'sudo'... (rssh, chroot, sftp-server meg ilyen gonoszságok)

Jogos. Bocs. Eszembe se jutott hogy valakinek nincsen shellje, mea culpa :D
____________________
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-from-task-scheduler

- 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)

Egyrészt nyitva maradt 2 code tag ha jól veszem észre.

Másrészt ez nem töröl minden más attribute-ot (Archive, Readonly, stb.)?

{$_.attributes = "Hidden"}

Hol maradt nyitva?
Levesz minden mást, a specifikáció nem egyértelmű :)

A hozzászólásodban, nyitottál kettő darab code tag-et, de nem zártad. Azért fura most itt az utolsó hozzászólások.

Szerk.: Zártam őket :D

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

Ez triggerelt egy optikus meglátogatását :(

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.