درخواست آموزش Auto fix for file permissions and ownership
سلام دوستان خوبید شما
من یه سوالی برام پیش اومده تو نت گشتم ولی چیزی خوبی پیدا نکردم
قصد تبلیغ ندارم برای بیشتر متوجه شدن شما اسم میبرم هاستنیگ های هستن مثله آبتین وب و کیمیا هاست از این قابلیت استفاده میکنند که مثلا یه هاست برای مشتری ساختن.
مشتری فایل ها رو فضای خودش میریزه به صورت دیفالت پرم فایل 600 یا 444 و پرم پوشه ها 755 هست میخواستم ببینم تو سی پنل این قابلیت به صورت دیفالت هست؟یا باید جای رو تیک زد یا فعال کرد یا نه افزونه ای اینکارو انجام میده
حتی اینکار میدونید باعث میشه امنیت کمی بالاتر بره در برابر سیم لینک
پاسخ : درخواست آموزش Auto fix for file permissions and ownership
یه سایت درباره این موضوع حرف زده ولی این نمیدونم میشه اعتماد کرد یا نه بعد این به صورت دستی اعمال میشه نه خودکار
Auto fix for file permissions and ownership | Boom Shadow (.net)
پاسخ : درخواست آموزش Auto fix for file permissions and ownership
منظورت اینه که این فایل ها پس از آپلود این پرمیشن را می گیرند؟
پاسخ : درخواست آموزش Auto fix for file permissions and ownership
دوست گرامی هاستینگ ها برای امنیت بیشتر از این قابلیت استفاده میکنند و باید یک bash file مینوکس نوشته بشه و سپس بصورت cronjob در سرور تعریف گردد که پس از اجرا premission ها را ست کند و خودکار اینکار انجام خواهد شد
پاسخ : درخواست آموزش Auto fix for file permissions and ownership
یعنی با این فایل میشه همچین کاریو انجام داد بعد مشکلی برای بقیه فایلی کنترل پنل مشکلی پیش نمیاد
آخه این سایت های نام بردم دفعه اول این کارو انجام میدن بعد اگر کاربر دستی پرمیشن رو عوض کنه همون مقدار باقی میمونه اینجور که شما گفتیدید یعنی به مدتی معلومی دوباره چک میکنه
کد PHP:
#! /bin/bash
#
# Date: Jan 26th 2012
# Author: Colin R.
# Revisions: Jacob "Boom Shadow" Tirey (boomshadow.net)
# Fixperms script for ServInt
#
# Fixperms script for cPanel servers running suPHP or FastCGI.
# Written for ServInt.net
# Copyright (C) 2012 Colin R.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. http://www.gnu.org/licenses/
# Set verbose to null
verbose=""
#Print the help text
helptext () {
tput bold
tput setaf 2
echo "Fix perms script help:"
echo "Sets file/directory permissions to match suPHP and FastCGI schemes"
echo "USAGE: fixperms [options] -a account_name"
echo "-------"
echo "Options:"
echo "-h or --help: print this screen and exit"
echo "-v: verbose output"
echo "-all: run on all cPanel accounts"
echo "--account or -a: specify a cPanel account"
tput sgr0
exit 0
}
# Main workhorse, fix perms per account passed to it
fixperms () {
#Get account from what is passed to the function
account=$1
#Check account against cPanel users file
if ! grep $account /var/cpanel/users/*
then
tput bold
tput setaf 1
echo "Invalid cPanel account"
tput sgr0
exit 0
fi
#Make sure account isn't blank
if [ -z $account ]
then
tput bold
tput setaf 1
echo "Need an account name!"
tput sgr0
helptext
#Else, start doing work
else
tput bold
tput setaf 4
echo "Fixing perms for $account:"
tput setaf 3
echo "------------------------"
tput setaf 4
echo "Fixing website files...."
tput sgr0
#Fix individual files in public_html
find /home/$account/public_html -type d -exec chmod $verbose 755 {} \;
find /home/$account/public_html -type f | xargs -d$'\n' -r chmod $verbose 644
find /home/$account/public_html -name '*.cgi' -o -name '*.pl' | xargs -r chmod $verbose 755
chown $verbose -R $account:$account /home/$account/public_html/*
find /home/$account/* -name .htaccess -exec chown $verbose $account.$account {} \;
tput bold
tput setaf 4
echo "Fixing public_html...."
tput sgr0
#Fix perms of public_html itself
chown $verbose $account:nobody /home/$account/public_html
chmod $verbose 750 /home/$account/public_html
#Fix subdomains that lie outside of public_html
tput setaf 3
tput bold
echo "------------------------"
tput setaf 4
echo "Fixing any domains with a document root outside of public_html...."
for SUBDOMAIN in $(grep -i document /var/cpanel/userdata/$account/* | awk '{print $2}' | grep home | grep -v public_html)
do
tput bold
tput setaf 4
echo "Fixing sub/addon domain document root $SUBDOMAIN...."
tput sgr0
find $SUBDOMAIN -type d -exec chmod $verbose 755 {} \;
find $SUBDOMAIN -type f | xargs -d$'\n' -r chmod $verbose 644
find $SUBDOMAIN -name '*.cgi' -o -name '*.pl' | xargs -r chmod $verbose 755
chown $verbose -R $account:$account $SUBDOMAIN
find $SUBDOMAIN -name .htaccess -exec chown $verbose $account.$account {} \;
done
#Finished
tput bold
tput setaf 3
echo "Finished!"
echo "------------------------"
printf "\n\n"
tput sgr0
fi
return 0
}
#Parses all users through cPanel's users file
all () {
cd /var/cpanel/users
for user in *
do
fixperms $user
done
}
#Main function, switches options passed to it
case "$1" in
-h) helptext
;;
--help) helptext
;;
-v) verbose="-v"
case "$2" in
-all) all
;;
--account) fixperms "$3"
;;
-a) fixperms "$3"
;;
*) tput bold
tput setaf 1
echo "Invalid Option!"
helptext
;;
esac
;;
-all) all
;;
--account) fixperms "$2"
;;
-a) fixperms "$2"
;;
*)
tput bold
tput setaf 1
echo "Invalid Option!"
helptext
;;
esac
پاسخ : درخواست آموزش Auto fix for file permissions and ownership
کار cronjob اینه که به ازای هر مدتی که شما تعریف می کنید به صورت دوره ای یک کار خاصی رو انجام می ده.
این کار می تونه اجرا کردن یک اسکریپت باشه که دسترسی های کاربران را بررسی کند و آنها را تغییر می دهد.
در ضمن می توان در لینوکس تنظیمات کاربر را طوری تغییر داد که در هنگام خروج یک اسکریپت اجرا شده و تمام فایل های یک کاربر را تغییر دسترسی دهد.
پاسخ : درخواست آموزش Auto fix for file permissions and ownership