diff options
-rwxr-xr-x | adduser.local | 67 | ||||
-rwxr-xr-x | deluser.local | 26 |
2 files changed, 75 insertions, 18 deletions
diff --git a/adduser.local b/adduser.local index d6bbbce..6c8dfbb 100755 --- a/adduser.local +++ b/adduser.local @@ -15,19 +15,62 @@ addgroup $NEWUSERNAME users if [ -x /usr/local/sbin/user-init ]; then /usr/local/sbin/user-init $NEWUSERNAME - fi +fi -test -e /etc/samba/smbpasswd && \ - /usr/local/sbin/smbadduser $NEWUSERNAME:$NEWUSERNAME \ - || true +# Samba password +#FIXME: Check if enabled in samba.conf (or included files!) +if [ -x /usr/local/sbin/smbadduser -a -f /etc/samba/smbpasswd -a -x /bin/csh ]; then + /usr/local/sbin/smbadduser $NEWUSERNAME:$NEWUSERNAME +fi -test -x /usr/sbin/add_members || exit 0 +# Mail forwarding +#FIXME: Do some syntax checking and bail out with a warning if something wrong +if [ -x /usr/local/sbin/userforward ]; then + echo -n "Forward mail to which account (leave blank to ignore)? " + read -s mailforward + echo + case $mailforward in + y|Y) + /usr/local/sbin/userforward $1 $mailforward + esac +fi -if [ -x /var/lib/mailman/lists/users ]; then - /bin/echo $NEWUSERNAME@`/bin/dnsdomainname` \ - | /usr/sbin/add_members -n - users +# Mailing lists +listdir="/var/lib/mailman/lists" +lists="" +[ -d $listdir ] && \ + lists=`find $listdir -type d -mindepth 1 -maxdepth 1 -exec basename '{}' \;` +for list in $lists; do + if [ -d $listdir/$list -a -x /usr/sbin/add_members ]; then + echo -n "Subscribe to mailinglist $list (y/N)? " + read -s subscribe + echo + case $subscribe in + y|Y) + /bin/echo $NEWUSERNAME@`/bin/dnsdomainname` \ + | /usr/sbin/add_members -n - users + ;; + esac fi -#if [ -x /var/lib/mailman/lists/friends ]; then -# /bin/echo $NEWUSERNAME@`/bin/dnsdomainname` \ -# | /usr/sbin/add_members -n - friends -# fi +done + +#FIXME: Make this ALOT more generic (or move it to /etc/local/adduser.d)! +if [ -d /home/christof/ftp_christof_ro ]; then + echo "Real users have read/write access to personal files." + echo "Dummy users have read access to published files." + echo -n "Is this a *real* user (y/N)? " + read -s realuser + echo + case $realuser in + y|Y) + addgroup $NEWUSERNAME realusers + ;; + *) + [ -e /home/christof/ftp_christof_ro/$1 ] \ + || mkdir /home/christof/ftp_christof_ro/$1 + chown christof: /home/christof/ftp_christof_ro/$1 + chmod u=rw,go=r,a+X /home/christof/ftp_christof_ro/$1 + ln -s /home/christof/ftp_christof_ro/$1 $4/images + ;; + esac +fi diff --git a/deluser.local b/deluser.local index b5fd6f9..8277c31 100755 --- a/deluser.local +++ b/deluser.local @@ -13,11 +13,25 @@ test -e /etc/samba/smbpasswd && \ test -x /usr/sbin/remove_members || exit 0 -if [ -x /var/lib/mailman/lists/users ]; then - /bin/echo $OLDUSERNAME@`/bin/dnsdomainname` \ - | /usr/sbin/remove_members -f - users +if [ -x /usr/sbin/remove_members ]: then + if [ -d /var/lib/mailman/lists/users ]; then + /bin/echo $OLDUSERNAME@`/bin/dnsdomainname` \ + | /usr/sbin/remove_members -f - users fi -if [ -x /var/lib/mailman/lists/friends ]; then - /bin/echo $OLDUSERNAME@`/bin/dnsdomainname` \ - | /usr/sbin/remove_members -f - friends + if [ -d /var/lib/mailman/lists/friends ]; then + /bin/echo $OLDUSERNAME@`/bin/dnsdomainname` \ + | /usr/sbin/remove_members -f - friends fi +fi + +#FIXME: Make this ALOT more generic! +if [ -d /home/christof/ftp_christof_ro/$1 -a -n "$1" ]; then + echo -n "Remove files at christof (y/N)? " + read -s remove_files + echo + case $remove_files in + y|Y) + rm -rf /home/christof/ftp_christof_ro/$1 + ;; + esac +fi |