Skip to content

Instantly share code, notes, and snippets.

@mlpassos
Created October 16, 2023 21:25
Show Gist options
  • Save mlpassos/d424266497a7624001e17eae26821b4f to your computer and use it in GitHub Desktop.
Save mlpassos/d424266497a7624001e17eae26821b4f to your computer and use it in GitHub Desktop.
Bash Script for Setting File and Folder Permissions for WordPress
#!/bin/bash
# Função para exibir mensagens de erro e sair
die() {
echo "Erro: $1"
exit 1
}
# Função para exibir a mensagem de ajuda
display_help() {
echo "Uso: $0 [--folder=<caminho>] [--help]"
echo "Configura as permissões corretas para um diretório WordPress de acordo com as melhores práticas de segurança."
echo
echo "Opções:"
echo " --folder=<caminho> Especifica o caminho para o diretório WordPress."
echo " --help Exibe esta mensagem de ajuda."
exit 0
}
# Verifica se o script está sendo executado como root
if [ "$(id -u)" != "0" ]; then
die "Este script precisa ser executado como root (use sudo)."
fi
# Tratamento dos argumentos
if [ $# -eq 0 ]; then
display_help
fi
for arg in "$@"; do
case $arg in
--folder=*)
folder="${arg#*=}"
shift
;;
--help)
display_help
;;
*)
die "Argumento inválido: $arg. Use --help para obter ajuda."
;;
esac
done
# Verifica se o diretório especificado existe
if [ ! -d "$folder" ]; then
die "O diretório especificado não existe."
fi
# Define as permissões recomendadas para o WordPress
wp_permissions() {
local dir="$1"
find "$dir" -type d -exec chmod 755 {} \;
find "$dir" -type f -exec chmod 644 {} \;
chown -R www-data:www-data "$dir"
}
# Aplica as permissões ao diretório WordPress
wp_permissions "$folder"
echo "Permissões configuradas com sucesso para $folder."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment