Portál AbcLinuxu, 12. května 2025 10:34
Řešení dotazu:
write
na ten adresář. Takže pokud adresáře vlastní skupina www-data
a má právo zápisu, mělo by z pohledu práv mazání fungovat. Změnit to může nastavený sticky bit na tom adresáři, který způsobí, že položky v adresáři může smazat nebo přejmenovat jenom vlastník nebo root – používá se to třeba na /tmp
adresáři. Dál do toho pak ještě mohou zasahovat bezpečnostní moduly, třeba SElinux.
Pokud byste nechtěl použít řešení s tím, že git
je členem www-data
, můžete použít ACL – to umožní nastavit oprávnění pro další uživatele a skupiny, ne jen pro vlastníky. Ale to záleží na tom, zda aplikace, která ty soubory a adresáře vytváří, nebude vymýšlet vylomeniny a bude tak fungovat dědění ACL.
w
na adresář, ve kterém je ten soubor. A samozřejmě se musí uživatel k tomu adresáři dostat (práva x
na všechny adresáře po cestě).
A dále bych doporučil nastavit setgid
na ten adresář – tím pádem budou nově vytvářené soubory a adresáře mít jako skupinu uvedeno www-data, a ne primární skupinu uživatele, který je vytvořil.
drwxr-sr-x 5 www-data www-data 4096 may 2 13:54 cache
chmod 0777 www -R
tak to funguje v pořádku, resp script pres uživatele git opet projde. To vše opět jen do chvíle než někdo aktualizuje danou stránku.
apache2-mpm-itk
, a přidal do /etc/apache2/sites-available/default
toto:IfModule mpm_itk_module>
AssignUserId uzivatel skupina
/IfModule>
/temp
skupinu www-data a práva rwx
, pak by uživatel git
(pokud je členem www-data
) tu složku /temp/cache
mohl smazat. Ale ta složka by musela být prázdná. Když jí mažete rekurzivně, předpokládám, že v ní jsou soubory nebo adresáře – a ty uživatel git
smazat nemůže, protože pro skupinu není na složce právo x
, navíc je tam nastaven sticky bit.
Nejlepší by podle mne bylo na tom adresáři /temp
nastavit přes ACL uživateli git
právo zápisu, a to samé dát do defaultních ACL na tom adresáři, aby se to kopírovalo do vytvářených souborů a podadresářů:
setfacl -m u:gid:rwX /temp setfacl -m -d u:gid:rwX /temp
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.