|
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: 1802 (0x70a) Types: TextFile Names: »usr/admin/menu/usermgmt/moduser/chgshell «
└─⟦3d8f416b2⟧ Bits:30004042/core2.imd SW95705I 386/ix Multi-user Release 1.2 └─⟦this⟧ »usr/admin/menu/usermgmt/moduser/chgshell «
#ident "@(#)sadmin:admin/menu/usermgmt/moduser/chgshell 2.3" #menu# change a user's login shell #help# #help# This procedure allows you to change the command run when a user #help# logs in. This procedure will not change the login shell of the #help# administrative and system logins. minid=100 # Minimum user and group ID trap 'exit 0' 1 2 15 flags="-qq -k$$" while true do loginid=`checkre ${flags} -H' This is the "name" that the computer uses to identify the user. It also is used to identify data that belongs to the user.' \ -fe "Enter user's login ID [?, q]: " \ -R ':' '":" is an illegal character.' \ -r '.' 'You must enter a value.'` uid=`sed -n "/^${loginid}:/s/[^:]*:[^:]*:\([0-9]*\):.*/\1/p" /etc/passwd` if [ -z "${uid}" ] then echo "\\tLogin ID '${loginid}' does not exist. Choose another." continue elif [ "${uid}" -lt ${minid} ] then echo "\\tThis login has user ID ${uid}, which is less than ${minid}. This procedure will not change its login shell." continue fi shell=`grep "^${loginid}:" /etc/passwd | cut -d: -f7` if [ -z "${shell}" ] then shell=/bin/sh fi echo "The current shell is ${shell}." while true do newshell=`checkre ${flags} \ -fe 'Enter new shell command [q]: ' \ '.' 'You must enter a value.' \ '^[^ :]*$' 'Answer contains an illegal character.' \ '^/' 'Answer must begin with a "/"'` if [ ! -f "${newshell}" -o ! -x "${newshell}" ] then echo "\\tCommand '${newshell}' does not exist. Choose another." continue fi break done ed - /etc/passwd <<-! || { admerr $0 'Cannot edit /etc/passwd.'; exit 1;} H /^${loginid}:/s;\\([^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\\).*;\\1${newshell}; w ! checkyn ${flags} -f \ 'Do you want to change the login shell of another login?' || break done