diff --git a/homedirs.sh b/homedirs.sh old mode 100644 new mode 100755 index f16eadf7e31ba9cb406c666b24bcec5a9bcd21aa..d975b53961c2639476e470ce6e67cbbcd0d00d9a --- a/homedirs.sh +++ b/homedirs.sh @@ -1,11 +1,14 @@ #!/bin/bash # script creates home directories for users in rgroup if those do not exist -# and sets acl to allow monitoring user disk usage check set -e +# set -x +# trap read debug -rgroup="g_linuxusers" +rgroup="g_r_users" home="/homes/" +work="/work/" +rstudiodir=".rstudio" umask=0077 skel="/etc/skel" monitoringuser="monitoring" @@ -15,13 +18,31 @@ if [ ! -d $home ] mkdir $home fi +# make sure that fresh credentials are pulled +sss_cache -E + rusers="$(getent group $rgroup | awk -F '[/:]' '{print $4}')" -IFS=',' read -a ruserar <<< "$rusers" +IFS=$',' read -a ruserar <<< "$rusers" for ruser in "${ruserar[@]}" do + # create home directories if [ ! -d $home$ruser ] then mkhomedir_helper $ruser $umask $skel - setfacl -m u:${monitoringuser}:rx $home$ruser + setfacl -m u:$monitoringuser:rx $home$ruser + fi + # symlink .rstudio directory to work storage + if [ ! -d $work$ruser$rstudiodir ] + then + mkdir -p $work$ruser/$rstudiodir + mkdir -p $home$ruser/$rstudiodir + setfacl -m u:$monitoringuser:rx $work$ruser + setfacl -m u:$monitoringuser:rx $work$ruser/$rstudiodir + setfacl -m u:$ruser:rwx $work$ruser + setfacl -m u:$ruser:rwx $work$ruser/$rstudiodir + mount --bind $work$ruser/$rstudiodir $home$ruser/$rstudiodir + #ln -s $work$ruser/$rstudiodir $home$ruser/$rstudiodir + #chattr +i $home$ruser/$rstudiodir fi done +unset IFS