On Fri, Sep 24, 1999 at 01:46:18AM -0700, Darren/Torin/Who Ever... wrote: > > So, if you're getting a Perl binary that's 0600, it's either you, apt-get, > or dpkg.
More specifically it is dpkg doing the breaking, but it's perl's fault on how it is setting everything up. You will note that these two binaries are in the perl package itself [EMAIL PROTECTED](11:07am)-~]%l tmp/usr/bin/ total 1052 -rwxr-xr-x 2 collinbm collinbm 534844 Sep 22 03:32 perl-5.005.dist* -rwxr-xr-x 2 collinbm collinbm 534844 Sep 22 03:32 perl5.00503* However after configuration, perl-5.005.dist is hardlinked to perl-5.005, and then subsequently removed. So in actuallity we have a binary (/usr/bin/perl-5.005) that is not under control of the package system directly (bad idea IMO). Note also that this means that perl-5.005 is a hardlink to perl5.00503 (which is under package control). Now when dpkg first unpacks a package, it replaces binaries by first, chmod 600 on the binary (I'm not sure why, but it does), then unlinking it. When dpkg does this to perl5.00503, it means it also changes perl-5.005 (since they are hardlinked) and then unlinked, which leaves perl-5.005 mode 600, and still sitting there (since dpkg knows nothing about it. It is left like this until perl is configured and the postinst script takes care of moving perl-5.005.dist to perl-5.005. Why does perl need to do all this hardlink magic and also leave us with a binary that dpkg knows nothing about?! Ben