diff --git a/homedirs.sh b/homedirs.sh deleted file mode 100644 index f16eadf7e31ba9cb406c666b24bcec5a9bcd21aa..0000000000000000000000000000000000000000 --- a/homedirs.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/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 - -rgroup="g_linuxusers" -home="/homes/" -umask=0077 -skel="/etc/skel" -monitoringuser="monitoring" - -if [ ! -d $home ] - then - mkdir $home -fi - -rusers="$(getent group $rgroup | awk -F '[/:]' '{print $4}')" -IFS=',' read -a ruserar <<< "$rusers" -for ruser in "${ruserar[@]}" - do - if [ ! -d $home$ruser ] - then - mkhomedir_helper $ruser $umask $skel - setfacl -m u:${monitoringuser}:rx $home$ruser - fi -done diff --git a/homesdirs.sh b/homesdirs.sh new file mode 100755 index 0000000000000000000000000000000000000000..2e4613f57a773e8fced51ea21ac533ab9246613c --- /dev/null +++ b/homesdirs.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# script creates home directories for users in rgroup if those do not exist + +set -e +# set -x +# trap read debug + + +rgroup="g_r_users" +localrgroup="local_r_users" +home="/homes/" +work="/work/" +rstudiodir=".rstudio" +umask=0077 +skel="/etc/skel" +monitoringuser="monitoring" + +if [ ! -d $home ] + then + mkdir $home +fi + +# make sure that fresh credentials are pulled +/usr/sbin/sss_cache -E + +unset rusers +rusers="$(getent group $rgroup | awk -F '[/:]' '{print $4}')" +rusers="$rusers,$(getent group $localrgroup | awk -F '[/:]' '{print $4}')" +IFS=$',' read -r -a ruserar <<< "$rusers" +for ruser in "${ruserar[@]}" + do + # create home directories + if [ ! -d "$home$ruser" ] + then + /sbin/mkhomedir_helper "$ruser" "$umask" "$skel" + setfacl -m u:$monitoringuser:rx "$home$ruser" + fi + # symlink .rstudio directory to work storage + if [ ! -d "$work$ruser/$rstudiodir" ] + then + mkdir -m 770 -p "$work$ruser" + 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" + seufacl -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