This is a simple bash script I wrote to fix the permissions and ownership of files within a cpanel account. To use, simply copy the script your server, chmod 755, and pass the usernames as arguments:
./fixperms user1 user2 user3
You can also run a server-wide loop like this:
for i in `ls -A /var/cpanel/users` ; do ./fixperms $i ; done
Below is the script, but I recommend downloading it from here to ensure that the formatting is correct.
#!/bin/bash
# Script to fix permissions of accounts
if [ "$#" -lt "1" ];then
echo "Must specify user"
exit;
fi
USER=$@
for user in $USER
do
HOMEDIR=$(grep $user /etc/passwd | cut -d: -f6)
if [ ! -f /var/cpanel/users/$user ]; then
echo "$user user file missing, likely an invalid user"
elif [ "$HOMEDIR" == "" ];then
echo "Couldn't determine home directory for $user"
else
echo "Setting ownership for user $user"
chown -R $user:$user $HOMEDIR
chmod 711 $HOMEDIR
chown $user:nobody $HOMEDIR/public_html $HOMEDIR/.htpasswds
chown $user:mail $HOMEDIR/etc $HOMEDIR/etc/*/shadow $HOMEDIR/etc/*/passwd
echo "Setting permissions for user $USER"
find $HOMEDIR -type f -exec chmod 644 {} \; -print
find $HOMEDIR -type d -exec chmod 755 {} \; -print
find $HOMEDIR -type d -name cgi-bin -exec chmod 755 {} \; -print
find $HOMEDIR -type f \( -name "*.pl" -o -name "*.perl" \) -exec chmod 755 {} \; -print
fi
done
=================
find . -type d -print0 | xargs -0 chmod 755;find . -type f -print0 | xargs -0 chmod 644
find /home/zelebiz/www/wp-content/uploads/ -type d | xargs chmod 755
find /home/carespc/public_html/ -type d -perm 777 -print0 | xargs -0 chmod 755
find /home/naturaly/public_html/ -type d -perm 777 -print0 | xargs -0 chmod 755
171 [Jun/14/2010 - 12:48:00] find /home/naturaly/public_html/ -type f -perm 777 -print0 | xargs -0 chmod 644
=================
./fixperms user1 user2 user3
You can also run a server-wide loop like this:
for i in `ls -A /var/cpanel/users` ; do ./fixperms $i ; done
Below is the script, but I recommend downloading it from here to ensure that the formatting is correct.
#!/bin/bash
# Script to fix permissions of accounts
if [ "$#" -lt "1" ];then
echo "Must specify user"
exit;
fi
USER=$@
for user in $USER
do
HOMEDIR=$(grep $user /etc/passwd | cut -d: -f6)
if [ ! -f /var/cpanel/users/$user ]; then
echo "$user user file missing, likely an invalid user"
elif [ "$HOMEDIR" == "" ];then
echo "Couldn't determine home directory for $user"
else
echo "Setting ownership for user $user"
chown -R $user:$user $HOMEDIR
chmod 711 $HOMEDIR
chown $user:nobody $HOMEDIR/public_html $HOMEDIR/.htpasswds
chown $user:mail $HOMEDIR/etc $HOMEDIR/etc/*/shadow $HOMEDIR/etc/*/passwd
echo "Setting permissions for user $USER"
find $HOMEDIR -type f -exec chmod 644 {} \; -print
find $HOMEDIR -type d -exec chmod 755 {} \; -print
find $HOMEDIR -type d -name cgi-bin -exec chmod 755 {} \; -print
find $HOMEDIR -type f \( -name "*.pl" -o -name "*.perl" \) -exec chmod 755 {} \; -print
fi
done
=================
find . -type d -print0 | xargs -0 chmod 755;find . -type f -print0 | xargs -0 chmod 644
find /home/zelebiz/www/wp-content/uploads/ -type d | xargs chmod 755
find /home/carespc/public_html/ -type d -perm 777 -print0 | xargs -0 chmod 755
find /home/naturaly/public_html/ -type d -perm 777 -print0 | xargs -0 chmod 755
171 [Jun/14/2010 - 12:48:00] find /home/naturaly/public_html/ -type f -perm 777 -print0 | xargs -0 chmod 644
=================
No comments:
Post a Comment