Automatizált processz indítása sima felhasználóként bejelentkezés nélkül

 ( gentoojedi | 2019. április 14., vasárnap - 13:36 )

A kérdésem a következő. Nem bízom dr googlera, mert ha véletlenül nem pontosan érti meg mit akarok, akkor nem a megfelelő választ kapom.
Lehet tök bagatel az egész, de nem akarok kísérlatezni, ezért csak a tuti recepteket várom.

Adott egy bizonyos program, aminek magától el kell indulnia a gép bekapcsolásával egy bizonyos felhasználó nevében, akinek nincs rendszergazda jogosultsága.

A csavar az egészben, hogy bejelentkezés nélkül. Tehát nem szeretnék autologint és úgy indítani.

Ez jó lenne, ha fordítva is működne, de nem létfontosságú. Feltételezem, hogy itt már sriptelni kell. Tehát ha kikapcsolom a gépet, akkor nyilván egy egyedi init script bezárná és nem kilőné az alkalmazást. Tehát fontos lenne, hogy várna az alkalmazás válaszára egy bizonyos ideig, és csak utána kapcsolna ki a gép.

És hogy ne legyen olyan egyszerű a törtnet, nem systemd-vel használom a gentoot, hanem openrc-vel.

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ő.

Ebből scriptelés lesz: https://github.com/OpenRC/openrc/blob/master/service-script-guide.md
Ami számodra érdekes:

Idézet:
If your daemon doesn't know how to change its own user or group, then you can tell start-stop-daemon to launch it as an unprivileged user with

command_user="user:group"

(vagy tudod, az is megoldás, hogy nem szívatod magad, átállsz systemd-re és egy 5 soros szöveges fájllal oldod meg ;) )

Szerk.: Itt kifejezett copy-pastelhető példakódokat is találsz: https://wiki.gentoo.org/wiki/Handbook:X86/Working/Initscripts#Writing_initscripts

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

"(vagy tudod, az is megoldás, hogy nem szívatod magad, átállsz systemd-re és egy 5 soros szöveges fájllal oldod meg ;) )"

Vagy Te sem szívatod magad, átállsz openrcre (debianban opcionálisan van, ha még azt használsz) és egy 3 soros szöveges fájllal oldod meg :D

powered by ©gentoo

rc.local
sudo -u USER COMMAND

Vagy:
/etc/rc.local
su -c '/path/program' - user &

Szerk: ez valamiféle haxorakcióhoz kellene?

Nem akartam leírni ide milyen csúnyaságokat is csinálok.

Igazából transmission-daemon-t meg vboxmanage-t kell tudni indítania. Torrent klienst meg root joggal indítani elég elmebeteg ötlet. Virtualboxnál meg mivel eleve a felhasználó könyvtárában vannak a cuccok, akkor mit variáljak a root-tal. Meg teljesen felesleges és értelmetlen is lenne.

Nálam gentooban nincs rc.local fájl, se ilyen nevű mappa. /etc/local.d az van, de akkor inkább beteszem az /etc/init.d alá és nyomok egy rc-update add ... default-ot.

Igazából a szkriptelést meg szerettem volna kerülni.

powered by ©gentoo

Már volt és OpenRC-t használ :(

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

Ez nekem szolgáltatásnak tűnik. Az a kérdés, hogy nincs is rendszergazda jogod, vagy csak a processzt szeretnéd más userrrel futtatni? Mert akkor oldd meg először rootként, aztán írd be a szkriptbe, hogy su akárki.

Nem nagyon értem a kérdést. A cron le fogja neked futtatni a megadott user nevében, ha úgy állítod be. OK, a leállítást még nem nagyon látom.

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

A cronnal megoldom, hogy lekapcsolja a gépet. A megodást, amit választottam lent olvasható.

powered by ©gentoo

Köszi. Van ennél sokkal egyszerűbb megoldás, leírtam lent.

powered by ©gentoo

Megvan a tökéletes recept.

Nagyon minimális scripteléssel tökéletes indítás és leállítás. STP javalata alapján.

Gentooban openrc-nél van egy olyan feature, hogy csinálok az etc/local.d-be indításhoz .start, leállításhoz .stop kiterjesztésű scriptjeimet, majd beleírom a parancsot.

virtualbox.start:

#!/bin/sh
sudo -u userneve vboxmanage startvm "Windows Server 2012R2" --type headless
echo "virtualbox indul"

virtualbox.stop:
#!/bin/sh
sudo -u userneve vboxmanage controlvm "Windows Server 2012R2" savestate
echo "virtualbox leáll"

powered by ©gentoo