--- loncom/lcuserdel 2000/10/28 19:22:19 1.4 +++ loncom/lcuserdel 2000/10/29 17:57:26 1.5 @@ -5,6 +5,7 @@ # Scott Harrison # SH: October 27, 2000 # SH: October 28, 2000 +# SH: October 29, 2000 use strict; @@ -12,6 +13,10 @@ use strict; # be run by user 'www'. It DOES NOT delete directories. # All it does is remove a user's entries from # /etc/passwd, /etc/groups, and /etc/smbpasswd. +# It also disables user directory access by making the directory +# to be owned by user=www (as opposed to the former "username"). +# This command only returns an error if it is +# invoked incorrectly (by passing bad command-line arguments, etc). # This script works under the same process control mechanism # as lcuseradd and lcpasswd, to make sure that only one of these @@ -85,18 +90,27 @@ my ($username)=@input; $username=~/^(\w+)$/; my $safeusername=$1; +&enable_root_capability; + # By using the system userdel command: # Remove entry from /etc/passwd if it exists # Remove entry from /etc/groups if it exists -system('/usr/sbin/userdel',$safeusername); +system('/usr/sbin/userdel',$safeusername); # ignore error message +system('/usr/sbin/groupdel',$safeusername); # ignore error message # Remove entry from /etc/smbpasswd if it exists +my $oldsmbpasswd=`/bin/cat /etc/smbpasswd`; +my $newsmbpasswd=`/bin/grep -v '^${safeusername}:' /etc/smbpasswd`; -# Move directory from /home/username to /home/username.1 +if ($oldsmbpasswd ne $newsmbpasswd) { +open OUT,">/etc/smbpasswd"; +print OUT $newsmbpasswd; +close OUT; # Change ownership on directory from username:username to www:www # This prevents subsequently added users from having access. +system('/bin/chown','-R','www:www',"/home/$safeusername"); &disable_root_capability; unlink("/tmp/lock_lcpasswd");