Portál AbcLinuxu, 9. května 2025 21:54

Dotaz: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID

17.11.2011 15:14 krakonos
Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
Přečteno: 194×
Odpovědět | Admin
Ahoj, nevěděl by někdo, kde může být problém? Vytvořil jsem soubor v /usr/bin/root.test s chmod 4755
Obsah souboru /usr/bin/root.test:
#!/bin/sh echo $USER echo "test zapisu" >> /etc/test.data
Dále jsem vytvořil zmíněný soubor /etc/test.data s chmod 0644
Samozřejmě jako root
Problém je ve spuštění souboru /usr/bin/root.test, protože se program vykonává "pod" aktuálním uživatelem, nemělo by být 100% docíleno efektivního uživatele jako vlastníka souboru? Na místo toho je aktuální a to je přesně to, co nechci. Jiné soubory, npř. /usr/bin/passwd "vs" /etc/shadow používají identický princip, jen až na to, že jsou binární a tohle jsou skripty.

Ještě dodávám staty obou souborů:
stat /usr/bin/root.test 
  File: „/usr/bin/root.test“
  Size: 58        	Blocks: 8          IO Block: 4096   běžný soubor
Device: 301h/769d	Inode: 1072444     Links: 1
Access: (4755/-rwsr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-05-02 16:56:56.000000000 +0200
Modify: 2011-11-17 14:26:30.000000000 +0100
Change: 2011-11-17 14:28:02.000000000 +0100

stat /etc/test.data 
  File: „/etc/test.data“
  Size: 0         	Blocks: 0          IO Block: 4096   běžný prázdný soubor
Device: 301h/769d	Inode: 130955      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-11-17 14:23:51.000000000 +0100
Modify: 2011-11-17 14:53:47.000000000 +0100
Change: 2011-11-17 14:53:47.000000000 +0100

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.11.2011 15:17 krakonos
Rozbalit Rozbalit vše Re: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pro upřesnění. Obsah souboru /usr/bin/root.test je
#!/bin/sh
echo $USER
echo "test zapisu" >> /etc/test.data
a po spuštění souboru normálním uživatelem se vypíše chybová hláška

/usr/bin/root.test: 3: cannot create /etc/test.data: Permission denied
17.11.2011 15:29 Kit
Rozbalit Rozbalit vše Re: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vlastně sis odpověděl sám. Funguje to u binárek, ale u skriptů ne. To by musel mít SUID bit /bin/sh. To však rozhodně nedoporučuji.

Řešení problému je několik, záleží na konkrétní situaci. Někdy se hodí sudo, jindy ssh. A občas se hodí si kousek toho programu zkompilovat.
17.11.2011 15:40 krakonos
Rozbalit Rozbalit vše Re: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
Děkuji, sakra to mohl v té knížce taky napsat :-)
Nu, je možné něco jako: binární soubor s minimálním kódem pro spuštění skriptu s právy? Je na to vhodné Cčko? To už je skoro na nový příspěvek ale myslím že provedení vygooglim, jestliže to bude možné :-)
17.11.2011 15:59 Kit
Rozbalit Rozbalit vše Re: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
Nebude to jednodušší přes sudo?

C se na to hodit bude. Otázkou však je, jak si poradíš s bezpečností, když ho bude moci spustit kdokoli.
17.11.2011 16:33 krakonos
Rozbalit Rozbalit vše Re: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
Potřebuji aby ho mohl spustit kdokoli :) Představuji si to asi takto: Binární soubor spustí skript, stane se rodičovským procesem a dále se o nic nebude starat, skript díky nastavenému SUID v binárním souboru bude moci zapisovat do souborů npř. v /etc/* ale nikdo nebude mít právo(krom roota) přepisat, přejmenovat ani smazat skript.
Asi jsi myslel jak si poradím s právy pro určité uživatele, to si ještě ozkouším, jestliže budu mít práva roota a v proměnné $USER bude přihlášený uživatel a né efektivní, tak se dá řídit program i podle tohoto. Npř.
#!/bin/sh
#Absurdní příklad
if [ $USER != "root" ]; then
        echo "You must be root!"
fi
17.11.2011 20:39 pavel
Rozbalit Rozbalit vše Re: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
1. Tebe bych nechtěl mít na svém počítači, taková bezpečnostní díra, to už se rovnou přihlašuj pod uživatelem root....

2. I skript v bashi se dá zkompilovat do binárky, viz třeba shc compiler.
17.11.2011 20:43 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Nefunguje mi spuštění souboru "pod" vlastníkem-SUID
Tu vaši představu už někdo zrealizoval. Výsledný binární soubor se jmenuje sudo, jak už zde bylo napsáno…

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.