Skip to content

Commit 027a62c

Browse files
committed
[Fix] update permissions, Add global hestia config in /etc
1 parent fe1ebbc commit 027a62c

File tree

4 files changed

+25
-11
lines changed

4 files changed

+25
-11
lines changed

bin/v-add-user

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ else
8585
setfacl -m "u:$user:r-x" "$HOMEDIR/$user"
8686
fi
8787
setfacl -m "g:hestia-users:---" "$HOMEDIR/$user"
88+
setfacl -m "g:hestia-users:---" "$HESTIA"
8889

8990
# Building directory tree
9091
mkdir $HOMEDIR/$user/conf

bin/v-add-web-domain

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ check_hestia_demo_mode
6868
# Reading user values
6969
source $USER_DATA/user.conf
7070

71+
[[ -e "$HOMEDIR/$user/web/$domain" ]] && check_result $E_EXISTS "Web domain folder for $domain should not exist"
72+
7173
# Creating domain directories
7274
$BIN/v-add-fs-directory "$user" "$HOMEDIR/$user/web/$domain"
7375
$BIN/v-add-fs-directory "$user" "$HOMEDIR/$user/web/$domain/public_html"
@@ -95,10 +97,10 @@ done
9597
chown -R $user:$user $HOMEDIR/$user/web/$domain
9698
chown root:$user /var/log/$WEB_SYSTEM/domains/$domain.* $conf
9799
chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.*
98-
chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/*
99-
chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs
100-
chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*
101-
chown $user:www-data $HOMEDIR/$user/web/$domain/public_*html
100+
user_exec chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/*
101+
user_exec chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs
102+
user_exec chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*
103+
chown --no-dereference $user:www-data $HOMEDIR/$user/web/$domain/public_*html
102104

103105
# Addding PHP-FPM backend
104106
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 & 7 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
@@ -244,7 +245,7 @@ rebuild_web_domain_conf() {
244245
fi
245246

246247
# Set ownership
247-
chown $user:$user \
248+
chown --no-dereference $user:$user \
248249
$HOMEDIR/$user/web/$domain \
249250
$HOMEDIR/$user/web/$domain/private \
250251
$HOMEDIR/$user/web/$domain/cgi-bin \
@@ -404,18 +405,17 @@ rebuild_web_domain_conf() {
404405
done
405406

406407
# Set folder permissions
407-
chmod 551 $HOMEDIR/$user/web/$domain \
408+
no_symlink_chmod 551 $HOMEDIR/$user/web/$domain \
408409
$HOMEDIR/$user/web/$domain/stats \
409410
$HOMEDIR/$user/web/$domain/logs
410-
chmod 751 $HOMEDIR/$user/web/$domain/private \
411+
no_symlink_chmod 751 $HOMEDIR/$user/web/$domain/private \
411412
$HOMEDIR/$user/web/$domain/cgi-bin \
412413
$HOMEDIR/$user/web/$domain/public_html \
413414
$HOMEDIR/$user/web/$domain/public_shtml \
414415
$HOMEDIR/$user/web/$domain/document_errors
415416
chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.*
416417

417-
chown $user:www-data $HOMEDIR/$user/web/$domain/public_html \
418-
$HOMEDIR/$user/web/$domain/public_shtml
418+
chown --no-dereference $user:www-data $HOMEDIR/$user/web/$domain/public_*html
419419
}
420420

421421
# DNS domain rebuild

0 commit comments

Comments
 (0)