>> In a previous message, someone said:
?> Here are 5 sets of binaries. The first has UIDs 792-799, and GIDs 798
?> 799. Next has UIDs 1792-1799, and GIDs 1798 1799. Next has UIDs
?> 2792-2799, etc etc.
?>
?> An install script decides which is the first UID/GID combo which is
?> open, and installs that set of binaries.
>> On Fri, 5 Feb 1999 08:06:05 -0600,
>> Mate Wierdl <[EMAIL PROTECTED]> said:
M> Again, what if
M> UID 794 1794 2794 are taken?
Here's a short script I use to find open user/group ID ranges for qmail.
--
Karl Vogel
ASC/YCOA, Wright-Patterson AFB, OH 45433, USA
[EMAIL PROTECTED]
-----------------------------------------------------------------------------
#!/bin/sh
#
# $Id: avail-ids,v 1.1 1999/02/05 20:49:28 vogelke Exp $
# $Source: /src/mail/mta/qmail/qmail-local/RCS/avail-ids,v $
#
# NAME:
# avail-ids
#
# SYNOPSIS:
# avail-ids
#
# DESCRIPTION:
# Look for a nice range of open ids in /etc/passwd and /etc/group.
#
# We only check for stuff over userid or groupid 100; if nothing
# is found, then we don't have any user/group ids that high, so
# we just print the first seven after 100.
#
# The resulting commands should look something like this:
# groupadd -g 1000 nofiles
# groupadd -g 1001 qmail
#
# useradd -g nofiles -u 1000 -d /var/qmail/alias alias
# useradd -g nofiles -u 1001 -d /var/qmail qmaild
# useradd -g nofiles -u 1002 -d /var/qmail qmaill
# useradd -g nofiles -u 1003 -d /var/qmail qmailp
#
# useradd -g qmail -u 1004 -d /var/qmail qmailq
# useradd -g qmail -u 1005 -d /var/qmail qmailr
# useradd -g qmail -u 1006 -d /var/qmail qmails
#
# OPTIONS:
# None.
#
# AUTHOR:
# Karl Vogel <[EMAIL PROTECTED]>
# Sumaria Systems, Inc.
PATH=/bin:/usr/bin
export PATH
getrange () {
awk '{
cur = $1
match = 0
if (cur > 100 && cur - prev > 8)
{
for (k = 7; k >= 1; --k)
{
match = 1
print cur-k
}
exit
}
prev = cur
} END {
if (match == 0)
{
print "101 102 103 104 105 106 107"
}
}'
}
#
# Print groupadd commands.
#
set `cut -f3 -d: /etc/group | sort -nu | getrange`
echo groupadd -g $1 nofiles
echo groupadd -g $2 qmail
#
# Print useradd commands.
#
set `cut -f3 -d: /etc/passwd | sort -nu | getrange`
echo useradd -g nofiles -u $1 -d /var/qmail/alias alias
echo useradd -g nofiles -u $2 -d /var/qmail qmaild
echo useradd -g nofiles -u $3 -d /var/qmail qmaill
echo useradd -g nofiles -u $4 -d /var/qmail qmailp
echo useradd -g qmail -u $5 -d /var/qmail qmailq
echo useradd -g qmail -u $6 -d /var/qmail qmailr
echo useradd -g qmail -u $7 -d /var/qmail qmails
exit 0