./+DEINSTALL: Permission denied

Miroslav Lachman 000.fbsd at quip.cz
Sat May 27 19:27:10 CEST 2006


pri portupgrade / pkg_deinstall / pkg_delete narazim u nekterych portu 
na hlasku jako je tahle:

pkg_deinstall -v roundcube-0.1.20060518
--->  Deinstalling 'roundcube-0.1.20060518'
./+DEINSTALL: Permission denied
pkg_delete: deinstall script returned error status
pkg_delete: 1 package deletion(s) failed
--->  Listing the results (+:done / -:ignored / *:skipped / !:failed)
         ! roundcube-0.1.20060518        (pkg_delete failed)
--->  Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed

Jsem prihlasen jako root. Me prvni kroky vedly na Google, kde jsem nasel 
par postu se stejnym problemem, ale krome workaroundu tam nikdo 
nezminoval to, proc tomu tak je. (a z informaci, co tam poskytnul 
tazatel to ani vytusit neslo). Ja si myslim, ze je to na 99.9% tim, ze 
mam /var/db primountovan s option noexec a ten +DEINSTALL script je 
samozrejme ve /var/db/pkg/jmenoportu/+DEINSTALL, tudiz se ho nepovede 
spustit.
/dev/ad0s1e on /var/db (ufs, local, noexec, nosuid, soft-updates)

Drive jsem si podobneho chovani nevsimnul, ale rekl bych, ze se 
+DEINSTALL asi zacal u mnou instalovaneho SW pouzivat az nekdy v 
posledni dobe. Ty options pro mount tam mam z "bezpecnostnich" duvodu - 
zkratka pokud mam pocit, ze nekde nemaji byt spustitelne soubory, tak 
nevidim duvod, aby se z toho oddilu daly spoustet. Do ted jsem mel za 
to, ze na /var/db jsou vazne jen "databazove" soubory, ktere se 
nespousteji. Ted bohuzel vidim, ze tam jsou uz i spustitelne soubory.

Ze je ta hlaska zpusobena tim mountem si nejsem jisty na 100%, protoze 
to mam na produkcnim stroji, kde si za chodu vazne nechci hrat s 
remountem oddilu, na kterem je i MySQL databaze.

Nicmene by me ted od zkusenejsich zajimalo, jak to do budoucna resit? 
Vykaslat se uplne na noexec? (prida vubec nejakou realnou bezpecnost, 
kdyz se jakykoliv script stejne da spustit zavolanim "sh 
/var/db/spatny_script.sh"). Presunout /var/db/pkg na jiny oddil, ktery 
nema noexec a do /var/db na nej udelat symlink?
Otravovat nekoho s zadosti o upravu, aby se ./+DEINSTALL nevolal primo, 
ale pres zmineny "sh /var/db/pkg/jmenoportu/+DEINSTALL"?
Nejake jine reseni?

Predem diky za nazory

Miroslav Lachman



More information about the Users-l mailing list