X-Git-Url: http://git.hcoop.net/clinton/scripts.git/blobdiff_plain/2a2fcc8e538e9d71c4c02238d885b6d4503fbdea..3a9bd77a91c7228ac90171603a9260337a9e9bfb:/create-user diff --git a/create-user b/create-user index d4e3d59..7ad5114 100755 --- a/create-user +++ b/create-user @@ -146,18 +146,26 @@ test -e /etc/keytabs/user.daemon/$USER || \ sudo chown $USER:www-data /etc/keytabs/user.daemon/$USER sudo chmod 440 /etc/keytabs/user.daemon/$USER -# rsync keytabs to mire +# rsync keytabs (cd /etc/keytabs sudo tar clpf - user.daemon/$USER | \ ssh mire.hcoop.net cd /etc/keytabs\; sudo tar xlpf -) +(cd /etc/keytabs + sudo tar clpf - user.daemon/$USER | \ + ssh hopper.hcoop.net cd /etc/keytabs\; sudo tar xlpf -) # # Create/mount/set-perms on user's volumes (home, mail, databases, logs) # # HOME VOLUME +if vos examine user.$USER.d 2>/dev/null; then + echo "Reactivating old volume (user.$USER.d)" + vos rename user.$USER.d user.$USER +fi vos examine user.$USER 2>/dev/null || \ vos create deleuze.hcoop.net /vicepa user.$USER -maxquota 400000 + mkdir -p `dirname $HOMEPATH` fs ls $HOMEPATH || test -L $HOMEPATH || fs mkm $HOMEPATH user.$USER chown $USER:nogroup $HOMEPATH @@ -175,9 +183,11 @@ fs sa $HOMEPATH/.logs/mail $USER.daemon rlwidk chown $USER:nogroup $HOMEPATH/.logs/mail # public_html -mkdir -p $HOMEPATH/public_html -chown $USER:nogroup $HOMEPATH/public_html -fs sa $HOMEPATH/public_html system:anyuser rl +test -e $HOMEPATH/public_html || \ + (mkdir -p $HOMEPATH/public_html; \ + chown $USER:nogroup $HOMEPATH/public_html; \ + fs sa $HOMEPATH/public_html system:anyuser none; \ + fs sa $HOMEPATH/public_html $USER.daemon rl) # .procmail.d mkdir -p $HOMEPATH/.procmail.d @@ -194,15 +204,20 @@ mkdir -p $HOMEPATH/.public/.domtool chown $USER:nogroup $HOMEPATH/.public/.domtool test -e $HOMEPATH/.domtool || \ test -L $HOMEPATH/.domtool || \ - ln -s $HOMEPATH/.public/.domtool $HOMEPATH/.domtool + sudo -u $USER ln -s $HOMEPATH/.public/.domtool $HOMEPATH/.domtool # Gitweb hosting test -L /var/cache/git/$USER || \ sudo ln -s $HOMEPATH/.hcoop-git /var/cache/git/$USER # MAIL VOLUME +if vos examine mail.$USER.d 2>/dev/null; then + echo "Reactivating old volume (mail.$USER.d)" + vos rename mail.$USER.d mail.$USER +fi vos examine mail.$USER 2>/dev/null || \ vos create deleuze.hcoop.net /vicepa mail.$USER -maxquota 400000 + mkdir -p `dirname $MAILPATH` fs ls $MAILPATH || fs mkm $MAILPATH mail.$USER fs ls $HOMEPATH/Maildir || fs mkm $HOMEPATH/Maildir mail.$USER @@ -210,6 +225,16 @@ chown $USER:nogroup $MAILPATH chown $USER:nogroup $HOMEPATH/Maildir fs sa $MAILPATH $USER all fs sa $MAILPATH $USER.daemon all +if test ! -e $MAILPATH/new; then + mkdir -p $MAILPATH/cur $MAILPATH/new $MAILPATH/tmp + echo -e "This email account is provided as a service for HCoop members." \ + "\n\nTo learn how to use it, please visit the page" \ + "\n on our website."| \ + mail -s "Welcome to your HCoop email store" \ + -e -a "From: postmaster@hcoop.net" \ + real-$USER +fi +chown $USER:nogroup $MAILPATH/cur $MAILPATH/new $MAILPATH/tmp # Set up shared SpamAssassin folder if test -f $HOMEPATH/Maildir/shared-maildirs; then @@ -221,28 +246,6 @@ if test -f $HOMEPATH/Maildir/shared-maildirs; then 's!^(SpamAssassin )/home/spamd!\1/var/local/lib/spamd!1' \ $file fi - -# This does not yet seem to be needed, and it triggers an AFS issue, -# so I've commented it out --mwolson. -# -# NOTIFY=no -# for dir in $HOMEPATH/Maildir/shared-folders/SpamAssassin/*; do -# if ! test -d $dir; then -# NOTIFY=yes -# else -# dest=/var/local/lib/spamd/Maildir/.$(basename $dir) -# if test "$(readlink $dir/shared)" != "$dest"; then -# ln -sf $dest $dir/shared -# fi -# fi -# done -# if test $NOTIFY = yes; then -# # This is probably going overboard, but oh well -# echo "$USER needs assistance on their shared spam dir" | \ -# pagsh -c mail -s "[create-user] $USER needs assistance" \ -# -e -a "From: admins@deleuze.hcoop.net" mwolson_admin -# fi - else maildirmake --add SpamAssassin=/var/local/lib/spamd/Maildir \ $HOMEPATH/Maildir @@ -253,10 +256,10 @@ if ! vos examine db.$USER >/dev/null 2>/dev/null; then mkdir -p `dirname /afs/.hcoop.net/common/.databases/$PATHBITS` vos create -server afs -partition a -name db.$USER -maxquota 400000 fs mkmount -dir /afs/.hcoop.net/common/.databases/$PATHBITS -vol db.$USER -rw - vos release common.databases fs sa -dir $DBPATH -acl system:postgres l fs sa -dir $DBPATH -acl system:mysql l fs sa -dir $DBPATH -acl system:backup rl + fs sa -dir $DBPATH -acl $USER rl fi # Create postgres user and tablespace placeholder within volume @@ -264,6 +267,7 @@ if ! test -d $PGDIR; then mkdir -p $PGDIR chown postgres:postgres $PGDIR fs sa -dir $PGDIR -acl system:postgres write + fs sa -dir $PGDIR -acl $USER none sudo -u postgres psql -c "CREATE TABLESPACE user_$USER OWNER postgres LOCATION '$PGDIR'" template1 fi @@ -272,7 +276,9 @@ fi mkdir -p $MYSQLDIR chown mysql:mysql $MYSQLDIR fs sa -dir $MYSQLDIR -acl system:mysql write +fs sa -dir $MYSQLDIR -acl $USER none +vos release common.databases # # Mount points for backup volumes