From 5fdda8d0a5bd4360a39ae48c911484fc16bcb874 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 10 Oct 2004 09:50:16 +0000 Subject: Quote all variables. --- user-init | 233 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 117 insertions(+), 116 deletions(-) (limited to 'user-init') diff --git a/user-init b/user-init index 6a7218e..4888115 100755 --- a/user-init +++ b/user-init @@ -94,52 +94,52 @@ for user in $USERS; do # Ignore non-human accounts silently [ "$uid" -ge "$FIRST_UID" -a "$uid" -le "$LAST_UID" ] || continue - [ -d $HOME ] || continue -# [ -L $HOME ] && continue + [ -d "$HOME" ] || continue +# [ -L "$HOME" ] && continue - echo -n $user + echo -n "$user" # if [ -x /etc/local/quota.sh ]; then -# /etc/local/quota.sh $user +# /etc/local/quota.sh "$user" # fi - [ $QUOTASOFT ] || QUOTASOFT="0" - [ $QUOTAHARD ] || QUOTAHARD="0" + [ -n "$QUOTASOFT" ] || QUOTASOFT="0" + [ -n "$QUOTAHARD" ] || QUOTAHARD="0" for QUOTAHOME in $QUOTAHOMES; do - if [ $NEW_QUOTA ]; then - setquota $user $QUOTASOFT $QUOTAHARD 0 0 $QUOTAHOME + if [ -n "$NEW_QUOTA" ]; then + setquota "$user" "$QUOTASOFT" "$QUOTAHARD" 0 0 "$QUOTAHOME" else - setquota $user $QUOTAHOME $QUOTASOFT $QUOTAHARD 0 0 + setquota "$user" "$QUOTAHOME" "$QUOTASOFT" "$QUOTAHARD" 0 0 fi done - mkdir -p $HOME/mail - if [ "$USE_MBOX" ]; then - touch $HOME/mail/mbox - elif [ -f $HOME/mail/mbox -a ! -s $HOME/mail/mbox ]; then - rm -f $HOME/mail/mbox + mkdir -p "$HOME/mail" + if [ -n "$USE_MBOX" ]; then + touch "$HOME/mail/mbox" + elif [ -f "$HOME/mail/mbox" ] && [ ! -s "$HOME/mail/mbox" ]; then + rm -f "$HOME/mail/mbox" fi - if [ $NETATALK ]; then - mkdir -p $HOME/$mac + if [ -n "$NETATALK" ]; then + mkdir -p "$HOME/$mac" fi - if [ $SAMBA ]; then - mkdir -p $HOME/$pc + if [ -n "$SAMBA" ]; then + mkdir -p "$HOME/$pc" fi - if [ $XCHANGE ]; then - mkdir -p $XDIRREAL/$user + if [ -n "$XCHANGE" ]; then + mkdir -p "$XDIRREAL/$user" fi - if [ $PUBLIC ]; then - mkdir -p $HOME/public_html + if [ -n "$PUBLIC" ]; then + mkdir -p "$HOME/public_html" fi #TODO: Enable this only when option implemented to do it non-interactively # echo # dirty hack: better if being able to lower verbosity of localuserconfig -# su -s /bin/bash -c localuserconfig $user +# su -s /bin/bash -c localuserconfig "$user" - if [ "$do_server" = "yes" -a -r "$server_conf" -a -f $HOME/"$server_userconf" ]; then - server_username="$(grep '^username' $HOME/$server_userconf | awk -F= '{print $2}' | head -1 | awk '{print $1}')" + if [ "$do_server" = "yes" ] && [ -r "$server_conf" ] && [ -f "$HOME/$server_userconf" ]; then + server_username="$(grep '^username' \"$HOME/$server_userconf\" | awk -F= '{print $2}' | head -1 | awk '{print $1}')" if [ -n "$server_username" ]; then if grep -q "^volume $user " "$server_conf"; then perl -pi -e "s|^volume $user .*|volume $user smb $server_name $server_username $HOME/$server_root uid=$user,gid=$user - -|" "$server_conf" @@ -149,74 +149,75 @@ for user in $USERS; do fi fi - chown $user: $HOME - chmod u=rwX,go=rX $HOME + chown "$user": "$HOME" + chmod u=rwX,go=rX "$HOME" # Mail handling - chown -R $user: $HOME/mail - chmod -R u=rw,go=,u+X $HOME/mail - if [ -f $HOME/.mailboxlist ]; then - chown $user: $HOME/.mailboxlist - chmod 0640 $HOME/.mailboxlist + chown -R "$user": "$HOME/mail" + chmod -R u=rw,go=,u+X "$HOME/mail" + if [ -f "$HOME/.mailboxlist" ]; then + chown "$user": "$HOME/.mailboxlist" + chmod 0640 "$HOME/.mailboxlist" fi - if [ -f $HOME/.forward ]; then - chown $user: $HOME/.forward - chmod 0640 $HOME/.forward + if [ -f "$HOME/.forward" ]; then + chown "$user": "$HOME/.forward" + chmod 0640 "$HOME/.forward" fi - if [ -f /var/mail/$user ]; then - chown $user:mail /var/mail/$user - chmod ug=rw,o= /var/mail/$user - elif [ -f /var/spool/mail/$user ]; then - chown $user:mail /var/spool/mail/$user - chmod ug=rw,o= /var/spool/mail/$user + if [ -f "/var/mail/$user" ]; then + chown "$user":mail "/var/mail/$user" + chmod ug=rw,o= "/var/mail/$user" + elif [ -f "/var/spool/mail/$user" ]; then + chown "$user":mail "/var/spool/mail/$user" + chmod ug=rw,o= "/var/spool/mail/$user" fi # MySQL handling - if [ -f $HOME/.my.cnf ]; then - chown $user: $HOME/.my.cnf - chmod 0600 $HOME/.my.cnf + if [ -f "$HOME/.my.cnf" ]; then + chown "$user": "$HOME/.my.cnf" + chmod 0600 "$HOME/.my.cnf" fi # Mac dir permissions - if [ -d $HOME/$mac ]; then - chown -R $user: $HOME/$mac - chmod -R u=rw,g=r,o=,ug+X $HOME/$mac - rm -rf $HOME/$mac/Network\ Trash\ Folder - mkdir $HOME/$mac/Network\ Trash\ Folder - chown nobody: $HOME/$mac/Network\ Trash\ Folder - chmod a= $HOME/$mac/Network\ Trash\ Folder + if [ -d "$HOME/$mac" ]; then + chown -R "$user": "$HOME/$mac" + chmod -R u=rw,g=r,o=,ug+X "$HOME/$mac" + rm -rf "$HOME/$mac/Network Trash Folder" + mkdir "$HOME/$mac/Network Trash Folder" + chown nobody: "$HOME/$mac/Network Trash Folder" + chmod a= "$HOME/$mac/Network Trash Folder" fi # PC dir permissions - if [ -d $HOME/$pc ]; then - chown -R $user: $HOME/$pc - chmod -R u=rw,g=r,o=,ug+X $HOME/$pc + if [ -d "$HOME/$pc" ]; then + chown -R "$user": "$HOME/$pc" + chmod -R u=rw,g=r,o=,ug+X "$HOME/$pc" fi +#FIXME: something is wrong with prefixing "x" here... # Exchange dir permissions - if [ -d $XDIRREAL/$user ]; then - chown -R $user:users $XDIRREAL/$user - chmod -R g=r,g+X $XDIRREAL/$user + if [ -d "$XDIRREAL/$user" ]; then + chown -R "$user":users "$XDIRREAL/$user" + chmod -R g=r,g+X "$XDIRREAL/$user" if [ -e "x$HOME/$xchange" ]; then if [ -L "x$HOME/$xchange" ]; then - ln -sf $XDIRREAL/$user $HOME/$xchange + ln -sf "$XDIRREAL/$user $HOME/$xchange" else - echo "ERROR: $HOME/$xchange exists already. Leaving it as is..." + echo "ERROR: \"$HOME/$xchange\" exists already. Leaving it as is..." fi else - ln -s $XDIRREAL/$user $HOME/$xchange + ln -s "$XDIRREAL/$user" "$HOME/$xchange" fi fi # Public dir permissions - if [ -d $HOME/public_html ]; then - chown -R $user: $HOME/public_html - chmod -R u+rX,go=r,go+X $HOME/public_html - if [ $NETATALK ]; then - rm -rf $HOME/public_html/Network\ Trash\ Folder - mkdir $HOME/public_html/Network\ Trash\ Folder - chown nobody: $HOME/public_html/Network\ Trash\ Folder - chmod a= $HOME/public_html/Network\ Trash\ Folder + if [ -d "$HOME/public_html" ]; then + chown -R "$user": "$HOME/public_html" + chmod -R u+rX,go=r,go+X "$HOME/public_html" + if [ -n "$NETATALK" ]; then + rm -rf "$HOME/public_html/Network Trash Folder" + mkdir "$HOME/public_html/Network Trash Folder" + chown nobody: "$HOME/public_html/Network Trash Folder" + chmod a= "$HOME/public_html/Network Trash Folder" fi fi @@ -320,105 +321,105 @@ for user in $USERS; do # Deprecated share permissions for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/shares_win"`; do - chgrp -R $user $dir - chmod -R u=rw,g=rw,o=,ug+X,g+s $dir + chgrp -R "$user" "$dir" + chmod -R u=rw,g=rw,o=,ug+X,g+s "$dir" done for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/shares_mac"`; do - chgrp -R $user $dir - chmod -R u=rw,g=rw,o=,ug+X,g+s $dir - rm -rf $dir/Network\ Trash\ Folder - mkdir $dir/Network\ Trash\ Folder - chown nobody: $dir/Network\ Trash\ Folder - chmod a= $dir/Network\ Trash\ Folder + chgrp -R "$user" "$dir" + chmod -R u=rw,g=rw,o=,ug+X,g+s "$dir" + rm -rf "$dir/Network Trash Folder" + mkdir "$dir/Network Trash Folder" + chown nobody: "$dir/Network Trash Folder" + chmod a= "$dir/Network Trash Folder" done # Ftp shares permissions for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/ftp_$USER$"`; do - chgrp -R $user $dir - chmod -R ug=rw,o=r,a+X,g+s $dir - rm -rf $dir/Network\ Trash\ Folder - mkdir $dir/Network\ Trash\ Folder - chown nobody: $dir/Network\ Trash\ Folder - chmod a= $dir/Network\ Trash\ Folder + chgrp -R "$user" "$dir" + chmod -R ug=rw,o=r,a+X,g+s "$dir" + rm -rf "$dir/Network Trash Folder" + mkdir "$dir/Network Trash Folder" + chown nobody: "$dir/Network Trash Folder" + chmod a= "$dir/Network Trash Folder" done for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/ftp_${USER}_ro$"`; do - chown -R $user: $dir - chmod -R u=rw,go=r,a+X $dir - rm -rf $dir/Network\ Trash\ Folder - mkdir $dir/Network\ Trash\ Folder - chown nobody: $dir/Network\ Trash\ Folder - chmod a= $dir/Network\ Trash\ Folder + chown -R "$user": "$dir" + chmod -R u=rw,go=r,a+X "$dir" + rm -rf "$dir/Network Trash Folder" + mkdir "$dir/Network Trash Folder" + chown nobody: "$dir/Network Trash Folder" + chmod a= "$dir/Network Trash Folder" done # Web shares permissions for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/web_"`; do - chown -R $user: $dir + chown -R "$user": "$dir" # chmod -R u=rw,go=r,a+X $webdir #TODO: Only cgi scripts (.cgi and .pl) should be executable - chmod -R u+rw,go+r,a+X $dir + chmod -R u+rw,go+r,a+X "$dir" # leftover from ancient times with another policy if [ $NETATALK ]; then - rm -rf $dir/Network\ Trash\ Folder + rm -rf "$dir/Network Trash Folder" fi done # Web shares permissions for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/websites"`; do - chown root: $dir - chmod a=r,u+w,a+X $dir + chown root: "$dir" + chmod a=r,u+w,a+X "$dir" done for dir in `find $HOME -mindepth 2 -maxdepth 2 -type d | egrep "^$HOME/websites/"`; do - chown -R $user: $dir + chown -R "$user": "$dir" # chmod -R u=rw,go=r,a+X $webdir #TODO: Only cgi scripts (.cgi and .pl) should be executable - chmod -R u+rw,go+r,a+X $dir + chmod -R u+rw,go+r,a+X "$dir" # leftover from ancient times with another policy if [ $NETATALK ]; then - rm -rf $dir/Network\ Trash\ Folder + rm -rf "$dir/Network Trash Folder" fi done for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/webscripts"`; do - chown root: $dir - chmod a=r,u+w,a+X $dir + chown root: "$dir" + chmod a=r,u+w,a+X "$dir" done for dir in `find $HOME -mindepth 2 -maxdepth 2 -type d | egrep "^$HOME/webscripts/"`; do - chown -R $user: $dir + chown -R $user: "$dir" # chmod -R u=rw,go=r,a+X $webdir #TODO: Only cgi scripts (.cgi and .pl) should be executable - chmod -R u+rw,go+r,a+X $dir + chmod -R u+rw,go+r,a+X "$dir" done for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/webdata"`; do - chown $user: $dir - chmod a=r,u+w,a+X $dir + chown "$user": "$dir" + chmod a=r,u+w,a+X "$dir" done for dir in `find $HOME -mindepth 2 -maxdepth 2 -type d | egrep "^$HOME/webdata/"`; do - chown -R $user: $dir - chmod -R u=rw,go=,u+X $dir + chown -R "$user": "$dir" + chmod -R u=rw,go=,u+X "$dir" done for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/webshareddata"`; do - chown $user: $dir - chmod a=r,u+w,a+X $dir + chown "$user": "$dir" + chmod a=r,u+w,a+X "$dir" done for dir in `find $HOME -mindepth 2 -maxdepth 2 -type d | egrep "^$HOME/webshareddata/"`; do - chown -R $user: $dir - chmod -R u=rw,go=r,a+X $dir + chown -R "$user:" "$dir" + chmod -R u=rw,go=r,a+X "$dir" done for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/webphpsites"`; do - chown root: $dir - chmod u=rw,go=r,a+X $dir + chown root: "$dir" + chmod u=rw,go=r,a+X "$dir" done for dir in `find $HOME -mindepth 2 -maxdepth 2 -type d | egrep "^$HOME/webphpsites/"`; do - chown -R $user:www-data $dir + chown -R "$user":www-data "$dir" # chmod -R ug=rw,o=r,a+X $dir - chmod -R ug=rw,o=,ug+X $dir + chmod -R ug=rw,o=,ug+X "$dir" done for dir in `find $HOME -mindepth 1 -maxdepth 1 -type d | egrep "^$HOME/webphpdata"`; do - chown root: $dir - chmod a=r,u+w,a+X $dir + chown root: "$dir" + chmod a=r,u+w,a+X "$dir" done for dir in `find $HOME -mindepth 2 -maxdepth 2 -type d | egrep "^$HOME/webphpdata/"`; do - chown -R $user:www-data $dir - chmod -R ug=rw,o=,ug+X $dir + chown -R "$user":www-data "$dir" + chmod -R ug=rw,o=,ug+X "$dir" done # Dummy user restrictions -- cgit v1.2.3