-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadd-user.sh
executable file
·64 lines (57 loc) · 1.98 KB
/
add-user.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env bash
set -e
set -x
NEWUSER="${1}"
NEWHOME="/home/${NEWUSER}"
NEWGROUPS=""
if [ $(ls -1 /home/ | wc -l) -eq 0 ]; then
# first user can be a super user
NEWGROUPS="-G adm,cdrom,dip,lpadmin,plugdev,sambashare,docker,sudo"
OUTFILE="/etc/sudoers.d/${NEWUSER}"
if [ ! -f ${OUTFILE} ]; then
cat >${OUTFILE} <<EOF
## Uncomment the line below to allow sudo without password
## THIS IS NOT RECOMMENDED!
#
#${NEWUSER} ALL=(ALL) NOPASSWD: ALL
EOF
chmod o-rwx ${OUTFILE}
fi
fi
NEWSKEL="/etc/skel"
# password is admin
useradd -d ${NEWHOME} ${NEWGROUPS} -m -k ${NEWSKEL} -p '$6$ZukFU3LL$jGgdl2h6oSt/j06odeBaTPyWCwobck.GQA1DJVwEmYkji1DMDMj3WA66dCBpCer5hpavx8ArScr5lLvS4VXMg/' -s /bin/bash -U ${NEWUSER}
#usermod -a -G ${NEWGROUPS} ${NEWUSER}
install -d -m 700 -o ${NEWUSER} -g ${NEWUSER} ${NEWHOME}/.vim
install -d -m 700 -o ${NEWUSER} -g ${NEWUSER} ${NEWHOME}/.vim/backups
install -d -m 700 -o ${NEWUSER} -g ${NEWUSER} ${NEWHOME}/.vim/swaps
install -d -m 700 -o ${NEWUSER} -g ${NEWUSER} ${NEWHOME}/.vim/undo
mv ${NEWHOME} ${NEWHOME}.original
zfs create system${NEWHOME}
chown -R ${NEWUSER}:${NEWUSER} ${NEWHOME}
find ${NEWHOME}.original -maxdepth 1 -mindepth 1 -exec mv {} ${NEWHOME} \;
rmdir ${NEWHOME}.original
if [ -d /root/ubuntu-zfs/skel ]; then
for i in /root/ubuntu-zfs/skel/.* /root/ubuntu-zfs/skel/*; do
case ${i##*/} in
. | ..)
echo "Skipping ${i##*/}"
;;
*)
OUTFILE="${NEWHOME}/${i##*/}"
[ -f ${OUTFILE} -a ! -f ${OUTFILE}.original ] && cp -a ${OUTFILE} ${OUTFILE}.original
[ -f ${i} ] && install -m 600 -o ${NEWUSER} -g ${NEWUSER} ${i} ${OUTFILE}
if [ -d ${i} ]; then
cp -a ${i} ${NEWHOME}
chown -R ${NEWUSER}:${NEWUSER} ${OUTFILE}
# remove group and other permissions
find ${OUTFILE} -exec chmod go-rwx {} \;
fi
;;
esac
done
fi
if [ -e /root/.apt-cache ]; then
mv /root/.apt-cache ${NEWHOME}/.apt-cache
chown -R ${NEWUSER}:${NEWUSER} ${NEWHOME}/.apt-cache
fi