freebsd-ports/mail/majordomo/scripts/createuser
Nick Sayer a7402429dc * Set maintainership to anders@fix.no, there is no maintainer for this port.
* Add info about tlb in post-install-notes.
* Add WITH_POSTFIX_APPROVE_PATCH knob to fix problem with Postfix's
Delivered-To and Majordomo's approve command.
* Add security fixes from PR ports/28282 with a small change, use SHA1
instead of MD5 for generating cookies.
* Remove security warning, which isn't necessary anymore.

PR:		28282
Submitted by:	anders@fix.no
2001-07-23 16:14:02 +00:00

70 lines
1.7 KiB
Perl

#!/usr/bin/perl
#
eval '(exit $?0)' && eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
& eval 'exec /usr/bin/perl -S $0 $argv:q'
if 0;
if( ! -x "/usr/sbin/pw" ) {
print "\nYou require the pw command, which was included in FreeBSD v2.2 builds\n";
print "as of Dec 9th 1996. If you don't have it, try looking in\n";
print "/usr/src/usr.sbin/pw and building it\n\n";
exit 1;
}
if( getpwnam( "majordom" ) ) {
$have_user = 1;
( $null, $null, $mjUID ) = getpwnam( "majordom" );
} else {
$mjUID = 54;
while( getpwuid( $mjUID ) ) {
$mjUID++;
}
}
if( getgrnam( "majordom" ) ) {
$have_group = 1;
( $null, $null, $mjGID ) = getgrnam( "majordom" );
} else {
$mjGID = 54;
while( getgrgid( $mjGID ) ) {
$mjGID++;
}
}
if( $have_group && $have_user ) {
exit 0;
} elsif( $> ) {
print "\nYou must be root to run this step!\n\n";
exit 1;
}
print "majordom user using uid $mjUID\n";
print "majordom user using gid $mjGID\n";
if( ! $have_group ) {
$result = system( "/usr/sbin/pw groupadd majordom -g $mjGID" );
if( $result ) {
print "Failed to add group majordom!\n";
exit 1;
}
}
if( ! $have_user ) {
$result = system( "pw useradd majordom -u $mjUID -g $mjGID -d \"$ENV{PREFIX}/majordomo\" -c \"Majordomo Pseudo User\" -p \"*\" -s \"/nonexistent\"" );
} else {
$result = system( "pw usermod majordom -u $mjUID -g $mjGID -d \"$ENV{PREFIX}/majordomo\" -c \"Majordomo Pseudo User\" -p \"*\" -s \"/nonexistent\"" );
}
if( $result ) {
print "Failed to add/modify user majordom!\n";
exit 1;
}
## Add daemon to majordom group, to allow sendmail to call wrapper
## via direct pipes in /etc/mail/aliases
$result = system( "pw groupmod majordom -m daemon" );
if( $result ) {
print "Failed to add/modify user majordom!\n";
exit 1;
}