diff options
-rw-r--r-- | ezjail-config.sh | 43 | ||||
-rw-r--r-- | ezjail.template | 36 |
2 files changed, 79 insertions, 0 deletions
diff --git a/ezjail-config.sh b/ezjail-config.sh new file mode 100644 index 0000000..0b9d083 --- /dev/null +++ b/ezjail-config.sh | |||
@@ -0,0 +1,43 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if [ -f /etc/ezjail.template ]; then | ||
4 | . /etc/ezjail.template | ||
5 | |||
6 | # we do need to install only once | ||
7 | # rm /etc/ezjail.template | ||
8 | fi | ||
9 | |||
10 | # set defaults | ||
11 | ezjail_template_root=${ezjail_template_root:-"/basejail/config/_JAILNAME_"} | ||
12 | ezjail_template_files=${ezjail_template_files:-""} | ||
13 | ezjail_template_users=${ezjail_template_users:-""} | ||
14 | ezjail_template_packages=${ezjail_template_packages:-""} | ||
15 | |||
16 | # try to create users | ||
17 | for user in $ezjail_template_users; do | ||
18 | TIFS=$IFS; IFS=:; set -- $user; IFS=$TIFS | ||
19 | if [ $# -eq 7 ]; then | ||
20 | name=$1; grouplist=$3; gidlist=$4 | ||
21 | |||
22 | [ $2 ] && uid="-u $2" || uid="" | ||
23 | [ $5 ] && pass=$5 || pass="*" | ||
24 | [ $6 ] && home=$6 | ||
25 | [ $7 ] && shell="-s $7" | ||
26 | |||
27 | [ x$6 = x${6#-} ] && mkhome="-r" || mkhome=""; home=${6#-} | ||
28 | [ $home ] && home="-h $home"; | ||
29 | |||
30 | if [ $grouplist ]; then | ||
31 | gc=1 | ||
32 | for $group in `echo $grouplist | tr "," " "`; do | ||
33 | gid=`echo $gidlist | cut -d , -f $gc`; [ $gid ] && gid="-n $gid" | ||
34 | echo pw groupadd -n $group $gid | ||
35 | gc=(($gc + 1)) | ||
36 | done | ||
37 | endif | ||
38 | if [ $name ]; then | ||
39 | echo pw useradd $name $uid $shell $home $grouplist | ||
40 | fi | ||
41 | fi | ||
42 | |||
43 | done | ||
diff --git a/ezjail.template b/ezjail.template new file mode 100644 index 0000000..3f7ebb1 --- /dev/null +++ b/ezjail.template | |||
@@ -0,0 +1,36 @@ | |||
1 | # ezjail template example | ||
2 | # refer to ezjail(5) for more information | ||
3 | # | ||
4 | # ezjails jail init script tries to create the following users. Format is | ||
5 | # as follows: | ||
6 | # | ||
7 | # username:<uid>:group[,group,...]:<gid[,gid,...]>:cryptpw:[-]homedir:shell | ||
8 | # | ||
9 | # Example: | ||
10 | # | ||
11 | # ezjail_template_users=\ | ||
12 | # "admin::wheel::$1$p75bbfK.$Kz3dwkoVlgZrfLZdAXQt91:/home/admin:/bin/sh \ | ||
13 | # pgsql:1002:pgsql:1002:*:-/usr/local/psql:/bin/nologin \ | ||
14 | # ::heroes:1003::::" | ||
15 | |||
16 | # ezjails init script tries to install all files listed here from the path | ||
17 | # specified in the ezjail_template_root variable root to the corresponding | ||
18 | # location inside the jail. Directories are being copied recursive. Format | ||
19 | # is as follows: | ||
20 | # | ||
21 | # user:group:file(s) | ||
22 | # | ||
23 | # Example: | ||
24 | # | ||
25 | # ezjail_template_root=/basejail/config/_JAILNAME_ | ||
26 | # ezjail_template_files=\ | ||
27 | # "root:wheel:/etc/{resolv,rc,make}.conf \ | ||
28 | # admin:wheel:/home/admin/" | ||
29 | |||
30 | # ezjails jail init script tries to install packages specified in the | ||
31 | # ezjail_template_packages variable. All packages without an absolute | ||
32 | # path are assumed to be located in /basejail/config/pkg | ||
33 | # | ||
34 | # Example: | ||
35 | # | ||
36 | # ezjail_template_packages="sudo-1.6.8.9.tbz pico-4.64.tbz" | ||