Re: UID a přístup k souborům
To |
czdebian-l zavinac debian bod cz |
From |
Tomas Znamenacek <tomas bod znamenacek zavinac centrum bod cz> |
Date |
Sun, 7 Dec 2003 21:53:58 +0100 |
User-agent |
Mutt/1.5.4i |
Jiří Jánský wrote:
> Dobrý den,
> u nás ve škole vzniknul požadavek dynamicky rekonfigurovat squid přes webové
> rozhraní a mít tak možnost zakázat nebo povolit jednotlivá IP v lokální síti
> (respektyvě jeejich přístup k internetu.
> Moja myšlenka byla ta, že pomocí cgi-bin scriptu připojím k normálnímu
> squid.conf IP adresy, které mají být povoleny a squid restartuji. A hned na
> začátku jsem narazil na problém.
> Zkopíroval jsem soubor /etc/init.d/squid do složky s cgi-bin scripty,
> jako vlasníka nastavil root a zapnul suid bit (chmod u+s restart.sh - jestli
> ne tak mě opravte). Když jsem se onen script pokusil spustit z příkazové
> řádky jako obyčejný uživatel, tak to vypadá, jako že to nemá přístup ke
> konfiguračnímu souboru squid.conf, který je povolen číst a zapisovat pouze
> pro roota. No ale to by přece tek script mněl mít možnost přečíst, když má
> nastavený ten SUID bit.
Doufam ze jsem to vsechno dobre pochopil.
1) Skripty nemaji z historickych duvodu moznost suid bitu. Zkuste si
udelat skript, ktery jen zavola prikaz id, nastavte vlastnika
na roota a nastavte suid bit. Kdyz potom skript jako obycejny
uzivatel pustite, id volane skriptem by mel byt obycejny
uzivatel. Cili tudy cesta nevede.
$ cat <<EOF>foo.sh
>#!/bin/bash
>id
>EOF
$ su -c "chown root:root foo.sh"
$ chmod +s foo.sh
$ ls -l foo.sh
-rw-r-Sr-- 1 root root foo.sh
$ . foo.sh
uid=... (...), nikoliv root
2) Delal jsem tez webove rozhrani ke Squidu, nakonec jsem to vyresil
takhle: IP adresy nemusi byt tusim primo v squid.conf, jdou dat
i do externiho souboru. Tomu muzete rozumne nastavit prava podle
potreby. Pak jsem do crontabu vrazil na kazdych par minut
kontrolu tohohle souboru (MD5, timestamp, cokoliv bude fungovat)
a kdyz se soubor zmenil, volam squida aby si znovunacetl
konfiguraci. CGI skript ma pravo zapisu do toho souboru s IP.
Takhle zhruba nejak (nemam to ted po ruce a uz je to dlouho) mi to
pracuje.
T.
--
A hundred thousand lemmings can't be wrong!
Partial thread listing: