1
1
#! /bin/bash
2
- BASEUID=100000
3
- BASEGID=100000
4
- LXC_PATH=" /net/lxc/user"
5
- LXC_BASE=" /net/lxc"
6
- LXC_USER=" lxc"
7
- LXC_TEMPLATE=" /net/lxc/lxc-archlinux-userns"
2
+ source /etc/pulxc/pulxc.conf
3
+ PULXC_USER=" pulxc"
4
+ PULXC_TEMPLATE=" /usr/share/lxc/templates/lxc-archlinux"
5
+ CONFIG_PATH=" $BASE_PATH /lxc/$1 /config"
8
6
if [[ $1 == " " ]]; then
9
7
echo " No Username"
10
- exit
8
+ exit 1
11
9
fi
12
10
id $1 > /dev/null 2>&1
13
11
if [[ $? -ne 0 ]]; then
14
12
echo " User didn't exist!"
15
13
exit 1
16
14
fi
17
- lxc-create -P $LXC_PATH -t $LXC_TEMPLATE -n " $1 "
15
+ lxc-create -P $BASE_PATH /lxc -t $PULXC_TEMPLATE -n " $1 "
18
16
if [[ $? -ne 0 ]]; then
19
17
exit 1
20
18
fi
21
19
echo " Finish Creating lxc"
22
- notuid0=$( find $LXC_PATH /" $1 " /rootfs -not -uid 0)
23
- notgid0=$( find $LXC_PATH /" $1 " /rootfs -not -gid 0)
24
- facl=$( getfacl -R -s -p $LXC_PATH /" $1 " /rootfs | grep " # file:" | awk ' {print$3}' )
20
+ notuid0=$( find $BASE_PATH /lxc /" $1 " /rootfs -not -uid 0)
21
+ notgid0=$( find $BASE_PATH /lxc /" $1 " /rootfs -not -gid 0)
22
+ facl=$( getfacl -R -s -p $BASE_PATH /lxc /" $1 " /rootfs | grep " # file:" | awk ' {print$3}' )
25
23
if [[ " $notuid0 " != " " ]]; then
26
24
echo " Files not own by root"
27
25
notuid0=$( echo " $notuid0 " | awk ' {printf "\"%s\" ",$1; system("stat -c \"%u\" "$1);}' )
@@ -32,12 +30,12 @@ if [[ "$notgid0" != "" ]]; then
32
30
notgid0=$( echo " $notgid0 " | awk ' {printf "\"%s\" ",$1; system("stat -c \"%g\" "$1);}' )
33
31
echo " $notgid0 "
34
32
fi
35
- chown -R $BASEUID : $BASEGID $LXC_PATH /" $1 " /rootfs
33
+ chown -R $BASE_SUBUID : $BASE_SUBGID $BASE_PATH /lxc /" $1 " /rootfs
36
34
if [[ " $notuid0 " != " " ]]; then
37
- echo " $notuid0 " | awk -v BASEUID=$BASEUID ' {system("chown "$2+BASEUID" "$1);}'
35
+ echo " $notuid0 " | awk -v BASEUID=$BASE_SUBUID ' {system("chown "$2+BASEUID" "$1);}'
38
36
fi
39
37
if [[ " $notgid0 " != " " ]]; then
40
- echo " $notgid0 " | awk -v BASEGID=$BASEGID ' {system("chgrp "$2+BASEGID" "$1);}'
38
+ echo " $notgid0 " | awk -v BASEGID=$BASE_SUBGID ' {system("chgrp "$2+BASEGID" "$1);}'
41
39
fi
42
40
if [[ " $facl " != " " ]]; then
43
41
echo " Files using facl"
@@ -48,7 +46,7 @@ if [[ "$facl" != "" ]]; then
48
46
getfacl -n $filename
49
47
tmp=$( getfacl -p -n $filename )
50
48
tmp=$( echo " $tmp " | grep ' ^[^#]' |
51
- awk -F: -vBASEUID=$BASEUID -vBASEGID=$BASEGID ' {
49
+ awk -F: -vBASEUID=$BASE_SUBUID -vBASEGID=$BASE_SUBGID ' {
52
50
OFS=":";
53
51
if($1!="default"&&$1=="user"&&$2!="")
54
52
{$2=$2+BASEUID}
@@ -67,20 +65,20 @@ if [[ "$facl" != "" ]]; then
67
65
done
68
66
fi
69
67
70
- chown $BASEUID : $LXC_USER $LXC_PATH /$1
71
- chown $LCX_USER : $LXC_USER $LXC_PATH / $1 /config
72
- sed -i ' s/lxc.net.0.type = empty//g' $LXC_PATH / $1 /config
73
- echo " lxc.include = /usr/share/lxc/config/userns.conf" >> $LXC_PATH / $1 /config
74
- echo " lxc.include = $LXC_BASE / pulxc.conf" >> $LXC_PATH / $1 /config
75
- echo " lxc.idmap = u 0 $BASEUID 65536" >> $LXC_PATH / $1 /config
76
- echo " lxc.idmap = g 0 $BASEGID 65536" >> $LXC_PATH / $1 /config
77
- nextip=$( cat $LXC_BASE /NEXTIP )
78
- echo " lxc.net.0.type = veth" >> $LXC_PATH / $1 /config
79
- echo " lxc.net.0.link = lxcbr0 " >> $LXC_PATH / $1 /config
80
- echo " lxc.net.0.ipv4.address = 192.168.100. $nextip /24" >> $LXC_PATH / $1 /config
81
- echo " lxc.net.0.ipv4.gateway = 192.168.100.1 " >> $LXC_PATH / $1 /config
82
- echo " lxc.net.0.name = eth0" >> $LXC_PATH / $1 /config
83
- echo " lxc.net.0.flags = up" >> $LXC_PATH / $1 /config
84
- echo " Using ip 192.168.100. $nextip "
68
+ chown $BASE_SUBUID : $PULXC_USER $BASE_PATH /lxc /$1
69
+ chown $PULXC_USER : $PULXC_USER $CONFIG_PATH
70
+ sed -i ' s/lxc.net.0.type = empty//g' $CONFIG_PATH
71
+ echo " lxc.include = /usr/share/lxc/config/userns.conf" >> $CONFIG_PATH
72
+ echo " lxc.include = /etc/ pulxc/pulxc-lxc .conf" >> $CONFIG_PATH
73
+ echo " lxc.idmap = u 0 $BASE_SUBUID 65536" >> $CONFIG_PATH
74
+ echo " lxc.idmap = g 0 $BASE_SUBGID 65536" >> $CONFIG_PATH
75
+ nextip=$( cat $BASE_PATH /nextip )
76
+ echo " lxc.net.0.type = veth" >> $CONFIG_PATH
77
+ echo " lxc.net.0.link = $BRIDGE_INTERFACE " >> $CONFIG_PATH
78
+ echo " lxc.net.0.ipv4.address = $IP_PREFIX . $nextip /24" >> $CONFIG_PATH
79
+ echo " lxc.net.0.ipv4.gateway = $GATEWAY " >> $CONFIG_PATH
80
+ echo " lxc.net.0.name = eth0" >> $CONFIG_PATH
81
+ echo " lxc.net.0.flags = up" >> $CONFIG_PATH
82
+ echo " Using ip $IP_PREFIX . $nextip /24 "
85
83
nextip=$(( $nextip + 1 ))
86
- echo $nextip > $LXC_BASE /NEXTIP
84
+ echo $nextip > $BASE_PATH /nextip
0 commit comments