summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ezjail-config.sh39
1 files changed, 11 insertions, 28 deletions
diff --git a/ezjail-config.sh b/ezjail-config.sh
index 3a1d8ea..71080e2 100644
--- a/ezjail-config.sh
+++ b/ezjail-config.sh
@@ -13,49 +13,32 @@ fi
13ezjail_flavour_users=${ezjail_flavour_users:-""} 13ezjail_flavour_users=${ezjail_flavour_users:-""}
14ezjail_flavour_files=${ezjail_flavour_files:-""} 14ezjail_flavour_files=${ezjail_flavour_files:-""}
15 15
16# try to create users 16# try to create users, variables named after pw useradd params
17for user in ${ezjail_flavour_users}; do 17for user in ${ezjail_flavour_users}; do
18 TIFS=${IFS}; IFS=:; set -- ${user}; IFS=${TIFS} 18 TIFS=${IFS}; IFS=:; set -- ${user}; IFS=${TIFS}
19 if [ $# -eq 8 ]; then 19 if [ $# -eq 8 ]; then
20 gc=1; name=$1; grouplist=$3; gidlist=$4; home=$7 20 u=${2:+-u$2}; G=$3; gs=$4; c=${5:+-c$5}; p=${6:-*}; d=${7#-}; m=${7%%[!-]*}; s=${8:+-s$8};
21
22 [ $2 ] && uid="-u $2" || uid=""
23 [ $5 ] && comment="-c$5" || comment=""
24 [ $6 ] && pass="$6" || pass="*"
25 [ $8 ] && shell="-s $8" || shell=""
26
27 [ "${home}" = "${home#-}" ] && mkhome="-m" || mkhome=""
28 [ ${home#-} ] && home="-d ${home#-}" || home=""
29 21
30 # ensure all groups 22 # ensure all groups
31 if [ ${grouplist} ]; then 23 gc=1; for n in `echo -n ${G} | tr , ' '`; do
32 for group in `echo -n ${grouplist} | tr "," " "`; do 24 g=`echo -n ${gs} | cut -d , -f ${gc}`
33 gid=`echo ${gidlist} | cut -d , -f ${gc}`; [ "${gid}" ] && gid="-g ${gid}" 25 pw groupadd -q -n ${n} ${g:+-g${g}}
34 pw groupadd -n ${group} ${gid} 26 gc=$((1+${gc}))
35 gc=$((1+${gc})) 27 done
36 done 28
37 fi
38 # create user 29 # create user
39 [ "${grouplist}" ] && grouplist="-G ${grouplist}" 30 [ $1 ] && echo ${p} | pw useradd -n $1 ${u} ${s} ${m:+-m} ${d:+-d${d}} ${G:+-G${G}} "`echo -n ${c} | tr = ' '`" -H 0
40 [ "${name}" ] && echo "${pass}" | pw useradd -n ${name} ${uid} ${shell} ${mkhome} ${home} ${grouplist} "`echo -n${comment} | tr = ' '`" -H 0
41 fi 31 fi
42done 32done
33set +o noglob
43 34
44# chmod all files not belonging to root 35# chmod all files not belonging to root
45for file in ${ezjail_flavour_files}; do 36for file in ${ezjail_flavour_files}; do
46 TIFS=${IFS}; IFS=:; set -- ${file}; IFS=${TIFS} 37 TIFS=${IFS}; IFS=:; set -- ${file}; IFS=${TIFS}
47 set +o noglob 38 [ $# -gt 2 ] && owner="$1:$2" && shift 2 && chown -R ${owner} $*
48 if [ $# -eq 3 -a "$3" ]; then
49 owner=$1; [ $2 ] && owner="$1:$2"
50 for file in ./$3; do
51 chown -R ${owner} /${file}
52 done
53 fi
54 set -o noglob
55done 39done
56 40
57# install packages 41# install packages
58set +o noglob
59[ -d /pkg ] && PACKAGESITE=file:// pkg_add -r /pkg/* 42[ -d /pkg ] && PACKAGESITE=file:// pkg_add -r /pkg/*
60 43
61# source post install script 44# source post install script