Skip to content

Commit bedecec

Browse files
committed
[Fix] update permissions, Add global hestia config in /etc
Conflicts: func/rebuild.sh
1 parent b400ab4 commit bedecec

File tree

4 files changed

+25
-10
lines changed

4 files changed

+25
-10
lines changed

bin/v-add-user

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ else
8888
setfacl -m "u:$user:r-x" "$HOMEDIR/$user"
8989
fi
9090
setfacl -m "g:hestia-users:---" "$HOMEDIR/$user"
91+
setfacl -m "g:hestia-users:---" "$HESTIA"
9192

9293
# Building directory tree
9394
mkdir $HOMEDIR/$user/conf

bin/v-add-web-domain

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ check_hestia_demo_mode
8282
# Reading user values
8383
source $USER_DATA/user.conf
8484

85+
[[ -e "$HOMEDIR/$user/web/$domain" ]] && check_result $E_EXISTS "Web domain folder for $domain should not exist"
86+
8587
# Creating domain directories
8688
$BIN/v-add-fs-directory "$user" "$HOMEDIR/$user/web/$domain"
8789
$BIN/v-add-fs-directory "$user" "$HOMEDIR/$user/web/$domain/public_html"
@@ -108,10 +110,10 @@ done
108110
chown -R $user:$user $HOMEDIR/$user/web/$domain
109111
chown root:$user /var/log/$WEB_SYSTEM/domains/$domain.* $conf
110112
chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.*
111-
chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/*
112-
chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs
113-
chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*
114-
chown $user:www-data $HOMEDIR/$user/web/$domain/public_*html
113+
user_exec chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/*
114+
user_exec chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs
115+
user_exec chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*
116+
chown --no-dereference $user:www-data $HOMEDIR/$user/web/$domain/public_*html
115117

116118
# Adding PHP-FPM backend
117119
if [ ! -z "$WEB_BACKEND" ]; then

func/main.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,3 +1165,14 @@ user_exec() {
11651165

11661166
setpriv --groups "$user_groups" --reuid "$user" --regid "$user" -- $@
11671167
}
1168+
1169+
# Simple chmod wrapper that skips symlink files after glob expand
1170+
no_symlink_chmod() {
1171+
local filemode=$1; shift;
1172+
1173+
for i in "$@"; do
1174+
[[ -L ${i} ]] && continue
1175+
1176+
chmod "${filemode}" "${i}"
1177+
done
1178+
}

func/rebuild.sh

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ rebuild_user_conf() {
5757
setfacl -m "u:$user:r-x" "$HOMEDIR/$user"
5858
fi
5959
setfacl -m "g:hestia-users:---" "$HOMEDIR/$user"
60+
setfacl -m "g:hestia-users:---" "$HESTIA"
6061

6162
# Update user shell
6263
/usr/bin/chsh -s "$shell" "$user" &>/dev/null
@@ -82,7 +83,7 @@ rebuild_user_conf() {
8283

8384
chmod a+x $HOMEDIR/$user
8485
chmod a+x $HOMEDIR/$user/conf
85-
chown $user:$user \
86+
chown --no-dereference $user:$user \
8687
$HOMEDIR/$user \
8788
$HOMEDIR/$user/.config \
8889
$HOMEDIR/$user/.cache \
@@ -119,7 +120,7 @@ rebuild_user_conf() {
119120
chmod 751 $HOMEDIR/$user/conf/web
120121
chmod 751 $HOMEDIR/$user/web
121122
chmod 771 $HOMEDIR/$user/tmp
122-
chown $user:$user $HOMEDIR/$user/web
123+
chown --no-dereference $user:$user $HOMEDIR/$user/web
123124
if [ -z "$create_user" ]; then
124125
$BIN/v-rebuild-web-domains $user $restart
125126
fi
@@ -243,7 +244,7 @@ rebuild_web_domain_conf() {
243244
fi
244245

245246
# Set ownership
246-
chown $user:$user \
247+
chown --no-dereference $user:$user \
247248
$HOMEDIR/$user/web/$domain \
248249
$HOMEDIR/$user/web/$domain/private \
249250
$HOMEDIR/$user/web/$domain/cgi-bin \
@@ -402,16 +403,16 @@ rebuild_web_domain_conf() {
402403
done
403404

404405
# Set folder permissions
405-
chmod 551 $HOMEDIR/$user/web/$domain \
406+
no_symlink_chmod 551 $HOMEDIR/$user/web/$domain \
406407
$HOMEDIR/$user/web/$domain/stats \
407408
$HOMEDIR/$user/web/$domain/logs
408-
chmod 751 $HOMEDIR/$user/web/$domain/private \
409+
no_symlink_chmod 751 $HOMEDIR/$user/web/$domain/private \
409410
$HOMEDIR/$user/web/$domain/cgi-bin \
410411
$HOMEDIR/$user/web/$domain/public_*html \
411412
$HOMEDIR/$user/web/$domain/document_errors
412413
chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.*
413414

414-
chown $user:www-data $HOMEDIR/$user/web/$domain/public_*html
415+
chown --no-dereference $user:www-data $HOMEDIR/$user/web/$domain/public_*html
415416
}
416417
# DNS domain rebuild
417418
rebuild_dns_domain_conf() {

0 commit comments

Comments
 (0)