Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I just upgraded a Debian Lenny box to Wheezy, and found that suidperl is gone. Googling reveals that the upstream maintainers removed it;

I need suidperl to run our mail installation, Open Webmail.

I don't have time for this.

Googling reveals no simple workarounds.

Does anyone here know how to get suidperl on wheezy? Simply? Thanks.

share|improve this question
    
<strike>in a fit of self-righteous security nitpicking</strike> because the upstream maintainers drop support. –  Zoredache Oct 31 '13 at 0:07
    
Changed to reflect that it wasn't the debian admins. –  NXT Oct 31 '13 at 0:08

2 Answers 2

up vote 8 down vote accepted

Bottom line: If you have no time for this then you need to revert to your pre-upgrade system snapshot/backup until you do have time to migrate to a webmail system that does not recommend use of deprecated technology.

As far as I recall (it's been probably 8 years since I've seen an open webmail install), open webmail reads mail spools directly (hence the need for suid) whereas most webmail systems interact with an IMAP server instead (pushing the need for suid to the mailserver, where it belongs).

As far as I can tell, suidperl was removed in perl 5.12 back in 2008(?) because nobody at the upstream level (ie: above Debian) wanted to maintain it - or in other words, suidperl no longer exists anywhere. The only reason you've been lucky to have it so long is because Debian stable uses fairly old versions of most software (with backported security fixes). It's certainly not Debian's fault that it's no longer in existence.

If you really really want to keep using open webmail on wheezy and newer for some reason, your only option is to follow the Open Webmail FAQ section 4:e (ps, ps) at http://openwebmail.org/openwebmail/doc/faq.txt which states:

  ps: If you don't want to recompile perl, you choose to may use
      misc/tools/suidwrap.pl to generate C wrappers for all suid scripts.

      However, this is not recommended at all, as you will not be able
      to use SpeedyCGI with the openwebmail system.

      Here are the steps:
      1. cd cgi-bin/openwebmail
      2. perl misc/tool/wrapsuid/wrapsuid.pl /fullpath/cgi-bin/openwebmail
      3. change #!/usr/bin/suidperl to the path of your perl

      All suid scripts will be renamed to .scriptname.pl and
      the C wrapper will be generated and named as script.pl
      (thanks to Chris Heegard, heegard.AT.NativeI.com)

      The spellcheck may not work on Solaris when using C wrappers.
      (thanks to Isam Ishaq, isam.AT.planet.edu)

Sorry for the bad news, but sometimes there are no good answers :\

share|improve this answer
    
Thanks, I just finished going through that wrapper process. Of course our OWM is slow now but I can live with that until I find a replacement. I just hate it when people break backwards compatibility without a really good reason. It just feels so high-handed. –  NXT Oct 31 '13 at 0:22
    
I can understand your frustration, but the reality is that Open Webmail is a bit of a relic at best these days - last updated in 2006, a full 2 years before perl made the decision to remove suidperl. The Perl team's reasoning was that suidperl was (at best) an imperfect situation in an environment (suid) where perfection is important - and that if "suidperl" was the solution then it's entirely possible that the developer was "asking the wrong question" to begin with. –  Phil Oct 31 '13 at 1:28
    
While it was very much still present, suidperl came with strong warnings that you probably shouldn't use it when I started using perl in 1996. –  mc0e May 22 at 18:33

I got openwebmail 2.53+ working with speedy AND the c-wrappers:

1 - download the speedy 2.22 sources from http://daemoninc.com/SpeedyCGI/download.html

2 - extract the tar.gz and edit this for compiling:

/src/speedy_backend_main.h:

-#define speedy_new(s,n,t) New(123,s,n,t)

+#define speedy_new(s,n,t) Newx(s,n,t)

(http://sourceforge.net/p/speedycgi/bugs/91/#7fc6)

3 - perl Makefile.PL; make; make install (don't bother adding the -DIAMSUID)

4 - change the #! line on your openwebmail*.pl to

/usr/bin/speedy -- -T/tmp/speedy

5 - on your openwebmail*.pl directory, run the c wrapper script (change the dir accordingly):

perl misc/tools/wrapsuid/wrapsuid.pl /var/www/owtest/cgi-bin/openwebmail

6 - chmod u+s openwebmail*pl

That worked on my squeeze server (I'm preparing to upgrade to wheezy, so I'll need that working).

(please note that my openwebmail 2.53 is not the stock 2.53, but probably something between that and 3beta, but it should work for both)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.