Portál AbcLinuxu, 10. května 2025 08:52
Ahoj,
Rad bych pozadal o radu pri zmene UID, GID. Mam nejakou vebovou stranku pres kterou muze uzivatel nahrat soubor do sveho ~ a potreboval bych prislusne zmenit UID toho souboru, aby tam nebylo UID uzivatele www-data. Je nejak mozne to udelat elegantneji nez skriptem se SUID bitem?
Dekuju za radu.
Mohl by jste prosim trochu nastinit jak by takovy skript vypadal? jeste si nejak nedovedu predstavit jak to do sebe zapadne. soubor nahraju do ~ uzivatele "test" s UID www-data a tusim ze kdyz chown pod sudo test tak to nebudu moct zmenit, protoze tam bude UID www-data.
Uděláte si standardní CGI skript tak, aby vám do něj nikdo nemohl nic zapisovat. Ten vám HTTP server pustí s UID www-data.
V CGI skriptu bude něco jako:
#!/bin/sh /usr/bin/sudo /usr/local/bin/upload
V /etc/sudoers si nastavíte, aby se /usr/local/bin/upload pouštěl s UID test a /usr/local/bin/upload uvnitř již bude přijímat data od HTTP klienta (ze stdin z těla POST požadavku) a ukládat někam do ~test.
Pokud máte Apache s suexec, tak můžete hodit skript upload do ~/public_html a nemusíte se trápit se sudo. Ale dobře si zajistěte, aby vám uživatel nepřepsal tento skript svojí zákeřnou verzí.
Diky za navrh ale soubor je ulozeny minimalne v tempu a nechci ho predavat postem CGI, mozna jako posledni reseni.
Je možné použít mod_ruid (google ho najde), i když už mě pár lidí odrazovalo (prý bezpečnost, nevím). Je to jednoduché řešení, které funguje, to je vše, co vím.
A co to zkusit resit jinak? Treba s timhle?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.