@@ -65,6 +65,7 @@ if [ -n "$gid" ]; then
6565 useraddOptions+=(--gid " $gid " )
6666fi
6767
68+ log " useradd ${useraddOptions[@]} $user "
6869useradd " ${useraddOptions[@]} " " $user "
6970mkdir -p " /home/$user "
7071chown root:root " /home/$user "
@@ -97,9 +98,51 @@ if [ -n "$dir" ]; then
9798 if [ ! -d " $dirPath " ]; then
9899 log " Creating directory: $dirPath "
99100 mkdir -p " $dirPath "
100- chown -R " $uid :# gid" " $dirPath "
101+ chown -R " $uid :$ gid" " $dirPath "
101102 else
102103 log " Directory already exists: $dirPath "
103104 fi
104105 done
105106fi
107+
108+ # ##### MODS for bind mounts #####
109+ # mount user dir
110+ dataPath=" /sftp-data"
111+ userDataDir=" $dataPath /users/$user "
112+ homeDataDir=" /home/$user /data"
113+
114+ # always create a data dir by default in the users home.
115+ if [ ! -d " $homeDataDir " ]; then
116+ log " - mkdir -p $homeDataDir "
117+ mkdir -p " $homeDataDir "
118+ chown -R " $uid :$gid " " $homeDataDir "
119+ fi
120+ # mod user so the data dir is their home
121+ usermod -d /data " $user "
122+
123+ if [ -d " $dataPath " ]; then
124+ log " - has $dataPath "
125+ # for users mount the data/users/%u directory
126+ if [ " $gid " = " 100" ]; then
127+ if [ ! -d " $userDataDir " ]; then
128+ log " - mkdir -p $userDataDir "
129+ mkdir -p " $userDataDir "
130+ fi
131+ log " - mount --bind $userDataDir $homeDataDir "
132+ # Remember permissions, you may have to fix them:
133+ # chown -R :100 "$userDataDir"
134+ mount --bind " $userDataDir " " $homeDataDir "
135+ # make sure permissions are good on users dir
136+ chown -R :100 " $dataPath "
137+ fi
138+ # for sudo (27) admins mount the data directory
139+ if [ " $gid " = " 27" ] ; then
140+ # chown -R :100 "$userDataDir"
141+ mount --bind " $dataPath " " $homeDataDir "
142+ # also make sure that they are assigned to the user group
143+ usermod -g 100 " $user "
144+ usermod -a -G 27 " $user "
145+ fi
146+ chown -R :100 " $dataPath "
147+ chmod -R 775 " $dataPath "
148+ fi
0 commit comments