@@ -10,31 +10,25 @@ LANDO_MODULE="userperms"
10
10
add_user () {
11
11
local USER=$1
12
12
local GROUP=$2
13
- local UID=$3
14
- local GID=$4
15
- local DISTRO=$5
16
- local EXTRAS=" $6 "
17
- if [ " $DISTRO " = " alpine" ]; then
18
- if ! groups | grep " $GROUP " > /dev/null 2>&1 ; then addgroup -g " $GID " " $GROUP " 2> /dev/null; fi
19
- if ! id -u " $GROUP " > /dev/null 2>&1 ; then adduser -H -D -G " $GROUP " -u " $UID " " $USER " " $GROUP " 2> /dev/null; fi
20
- else
21
- if ! groups | grep " $GROUP " > /dev/null 2>&1 ; then groupadd --force --gid " $GID " " $GROUP " 2> /dev/null; fi
22
- if ! id -u " $GROUP " > /dev/null 2>&1 ; then useradd --gid " $GID " --uid " $UID " $EXTRAS " $USER " 2> /dev/null; fi
23
- fi ;
13
+ local WEBROOT_UID=$3
14
+ local WEBROOT_GID=$4
15
+ if ! getent group | cut -d: -f1 | grep " $GROUP " > /dev/null 2>&1 ; then addgroup -g " $WEBROOT_GID " " $GROUP " 2> /dev/null; fi
16
+ if ! id -u " $USER " > /dev/null 2>&1 ; then adduser -H -D -G " $GROUP " -u " $WEBROOT_UID " " $USER " " $GROUP " 2> /dev/null; fi
24
17
}
25
18
26
19
# Verify user
27
20
verify_user () {
28
21
local USER=$1
29
22
local GROUP=$2
30
- local DISTRO=$3
31
23
id -u " $USER " > /dev/null 2>&1
32
- groups | grep " $GROUP " > /dev/null 2>&1
33
- if [ " $DISTRO " = " alpine" ]; then
24
+ groups " $USER " | grep " $GROUP " > /dev/null 2>&1
25
+ if command -v chsh > /dev/null 2>&1 ; then
26
+ if command -v /bin/bash > /dev/null 2>&1 ; then
27
+ chsh -s /bin/bash $USER || true
28
+ fi ;
29
+ else
34
30
true
35
31
# is there a chsh we can use? do we need to?
36
- else
37
- chsh -s /bin/bash $USER || true
38
32
fi ;
39
33
}
40
34
@@ -59,11 +53,10 @@ reset_user() {
59
53
if [ " $( id -u $USER ) " != " $HOST_UID " ]; then
60
54
usermod -o -u " $HOST_UID " " $USER " 2> /dev/null
61
55
fi
62
- groupmod -g " $HOST_GID " " $GROUP " 2> /dev/null || true
63
- if [ " $( id -u $USER ) " != " $HOST_UID " ]; then
56
+ groupmod -o - g " $HOST_GID " " $GROUP " 2> /dev/null || true
57
+ if [ " $( id -g $USER ) " != " $HOST_GID " ]; then
64
58
usermod -g " $HOST_GID " " $USER " 2> /dev/null || true
65
59
fi
66
- usermod -a -G " $GROUP " " $USER " 2> /dev/null || true
67
60
fi ;
68
61
# If this mapping is incorrect lets abort here
69
62
if [ " $( id -u $USER ) " != " $HOST_UID " ]; then
@@ -97,7 +90,6 @@ perm_sweep() {
97
90
nohup find /user/.ssh -not -user $USER -execdir chown $USER :$GROUP {} \+ > /tmp/perms.out 2> /tmp/perms.err &
98
91
nohup find /var/www -not -user $USER -execdir chown $USER :$GROUP {} \+ > /tmp/perms.out 2> /tmp/perms.err &
99
92
nohup find /usr/local/bin -not -user $USER -execdir chown $USER :$GROUP {} \+ > /tmp/perms.out 2> /tmp/perms.err &
100
- nohup chmod -R 755 /var/www > /dev/null 2>&1 &
101
93
102
94
# Lets also make some /usr/locals chowned
103
95
nohup find /usr/local/lib -not -user $USER -execdir chown $USER :$GROUP {} \+ > /tmp/perms.out 2> /tmp/perms.err &
0 commit comments