mirror of
https://github.com/myvesta/vesta
synced 2025-07-05 12:36:23 -07:00
88 lines
2.5 KiB
Bash
88 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# info: Fixing chown and chmod permissions in the public_html directory
|
|
# options: DOMAIN
|
|
|
|
#----------------------------------------------------------#
|
|
# Variable&Function #
|
|
#----------------------------------------------------------#
|
|
|
|
whoami=$(whoami)
|
|
if [ "$whoami" != "root" ]; then
|
|
echo "You must be root to execute this script"
|
|
exit 1
|
|
fi
|
|
|
|
# Importing system environment
|
|
source /etc/profile
|
|
|
|
# Argument definition
|
|
domain=$1
|
|
|
|
# Check if number of arguments is 2
|
|
if [ $# -eq 2 ]; then
|
|
user=$2
|
|
else
|
|
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
|
|
fi
|
|
USER=$user
|
|
|
|
# Includes
|
|
source /usr/local/vesta/func/main.sh
|
|
|
|
if [ -z "$user" ]; then
|
|
check_result $E_NOTEXIST "domain $domain doesn't exist"
|
|
fi
|
|
|
|
#----------------------------------------------------------#
|
|
# Verifications #
|
|
#----------------------------------------------------------#
|
|
|
|
check_args '1' "$#" 'DOMAIN'
|
|
is_format_valid 'domain'
|
|
is_object_valid 'user' 'USER' "$user"
|
|
|
|
if [ ! -d "/home/$user" ]; then
|
|
echo "User doesn't exist";
|
|
exit 1;
|
|
fi
|
|
|
|
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
|
|
echo "Domain doesn't exist";
|
|
exit 1;
|
|
fi
|
|
|
|
#----------------------------------------------------------#
|
|
# Action #
|
|
#----------------------------------------------------------#
|
|
|
|
# Going to domain directory
|
|
cd /home/$USER/web/$domain
|
|
|
|
# Ownership check
|
|
if [ -z "$SKIP_OWNERSHIP_CHECK" ] && [ -f "public_html/index.php" ]; then
|
|
owner=$(stat -c '%U' "public_html/index.php")
|
|
if [ "$owner" = "root" ] || [ "$owner" = "www-data" ]; then
|
|
echo "Skipping permission fix for $domain, because v-lock-wordpress is used (index.php is owned by $owner)"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
echo "Updating permissions for /home/$USER/web/$domain/public_html/"
|
|
find public_html/ -type d -exec chmod 755 {} +
|
|
find public_html/ -type f -exec chmod 644 {} +
|
|
chown -R $USER:$USER public_html/
|
|
|
|
# Setting chmod 600 for all php files
|
|
echo "= Setting chmod 600 for all php files"
|
|
find -name "*.php" -type f -exec chmod 600 {} +
|
|
find -name ".env" -type f -exec chmod 600 {} +
|
|
find -name "*.php" -type f -exec chown $USER:$USER {} +
|
|
find -name ".env" -type f -exec chown $USER:$USER {} +
|
|
|
|
#----------------------------------------------------------#
|
|
# Vesta #
|
|
#----------------------------------------------------------#
|
|
echo "Permissions for $domain have been successfully updated."
|
|
|
|
exit 0
|