Poslání SIGUSR1 procesu, který spustil někdo jiný – OS - GNU / Linux – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Poslání SIGUSR1 procesu, který spustil někdo jiný – OS - GNU / Linux – Fórum – Programujte.comPoslání SIGUSR1 procesu, který spustil někdo jiný – OS - GNU / Linux – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Doomista+1
Stálý člen
24. 8. 2016   #1
-
0
-

Ahoj,

vytvářím webové GUI pro firemní program, jehož součástí jsou různé konfigurační soubory, které je možné skrze GUI editovat. Program běží jako démon a konfiguráky je možné znovu načíst posláním signálu SIGUSR1 jeho procesu. Tento proces zároveň vytváří soubory, které GUI potřebuje umět akorát číst, práva pro zápis bych mu přiděloval nerad.

Nicméně GUI, běžící pod uživatelem apache (webserver), potřebuje poslat SIGUSR1 procesu, který vytvořil jiný uživatel, na což implicitně nemá práva. Je možné nějakým způsobem přidělit apachi práva k poslání tohoto jednoho konkrétního signálu jednomu konkrétnímu procesu?

V linuxu jsem stále začátečník, tak bych požádal, aby v odpovědích nebylo moc zkratek a slangu ;)

Předem díky za pomoc

Nahlásit jako SPAM
IP: 2001:67c:1220:809::93e5:9...–
Na vše stačí iostream...
q
~ Anonymní uživatel
219 příspěvků
24. 8. 2016   #2
-
0
-

Co tak nejčastěji vídám, tak se k takovým věcem používají jednoúčelové programy.

A buď je přímo ten program suid-root

chmod u+s program

po spuštění bude mít efektivní práva (euid) roota (resp. vlastníka souboru) ale identitu (uid) toho, kdo ho spustil, takže to můžeš kdyžtak otestovat. Nebo se spouští přes sudo, kde v konfigu definuješ, kdo ten program může spouštět.

/etc/sudoers:
user ALL=(ALL) NOPASSWD: /full/path/to/command

Jen bych teda doporučil v tom programu nědělat nic, než je opravdu potřeba, ať si tím nezaneseš díru do systému.

Nahlásit jako SPAM
IP: 213.211.51.–
Doomista+1
Stálý člen
24. 8. 2016   #3
-
0
-

#2 q
Nejsem si jistý, zda jsme se úplně pochopili. V mé situaci bych postup, který navrhuješ, musel aplikovat na program kill, protože ten zasílá signál tomu procesu, případně bych musel dát sudo uživateli apache, což nepovažuji za šťastný nápad.

Potřebuji, aby:

uživatel XY spustil 'muj_program'
uživatel apache spustil kill -s SIGUSR1 'pid_meho_programu'

Je možné nějakému programu přidělit euid právě apache, aby ten následně měl potřebná práva k volání kill nad tím programem?

Nahlásit jako SPAM
IP: 2a00:1028:83a0:33ea:95d:4...–
Na vše stačí iostream...
Řešení
q
~ Anonymní uživatel
219 příspěvků
24. 8. 2016   #4
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

Já jsem myslel, že by sis napsal vlastní program, který bys takhle zpřístupnil. V obou případech můžeš určit, kdo ho může spouštět a čí práva bude mít. A co bude dělat už je na tobě.

Pokud bys to chtěl na nějaký systémový, třeba killall, protože mu můžeš dát jméno procesu. Tak by to přes sudo bylo takhle:

<apache> ALL=(<demonuser>) NOPASSWD: /usr/bin/killall -USR1 <demonprog>

Takže <apache> může jako uživatel <demonuser> bez hesla spustit killall jen s těmito parametry, nic jiného.

sudo -u <demonuser> killall -USR1 <demonprog>

Bez těch špičatých závorek, to je jen na zvýraznění.

Nahlásit jako SPAM
IP: 78.156.159.–
Doomista+1
Stálý člen
25. 8. 2016   #5
-
0
-

#4 q
Ano, to je přesně to, co jsem potřeboval. Díky moc!

Nahlásit jako SPAM
IP: 2001:67c:1220:809::93e5:9...–
Na vše stačí iostream...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

Poslani emailu — založil Jirka

Poslání příkazu na USB — založil Romanx

Poslání dat do vlákna — založil eximik

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý