|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T u
Length: 1296 (0x510)
Types: TextFile
Names: »usr/admin/unixadmin «
└─⟦3d8f416b2⟧ Bits:30004042/core2.imd SW95705I 386/ix Multi-user Release 1.2
└─⟦this⟧ »usr/admin/unixadmin «
#ident "@(#)sadmin:admin/unixadmin 2.3"
# General purpose hook into administrative logins used as commands,
# so that the commands can have passwords on them.
set -f
PATH=${PATH:-/bin:/usr/bin}:/usr/lbin
export PATH
cmd=`basename $0`
if grep "^${cmd}:" /etc/passwd >/dev/null
then
# Magic here!
# The problem is that we want the commands to (potentially) have a
# password, so that they can be restricted if the user likes, and
# to be within the restricted shell so that the user can not break out
# and become super-user. The complication is that we want the command
# to have arguments, but /bin/su will not permit arguments to something
# that has /bin/rsh as its login shell and /bin/su clears out the
# environment when the - argument is used. So we open another File
# Descriptor and ship the arguments in via a pipe.
# make File Descriptor 4 the same as 0 (standard input)
exec 4<&0
# echo the arguments down a pipe. On the receiving end,
# connect the pipe to File Descriptor 3 and connect the original
# standard input, available on FD 4, to FD 0. Lastly, close FD 4.
# See the .profile file (admin profile.dot) for how the arguments
# are read.
echo $* | 3<&0 0<&4 4<&- /bin/su - ${cmd}
else
admerr $0 Command ${cmd} does not exist in /etc/passwd.
exit 1
fi