Eu falarei em termos de Apache httpd, já que é um servidor web muito popular.
O diretório raiz onde todos os arquivos são mantidos é genericamente denominado DocumentRoot . Lembre-se de que os arquivos são mantidos no DocumentRoot para que seja exibido pelo servidor da Web, não para serem mostrados quando você faz login via FTP. O FTP é um protocolo totalmente diferente que não está relacionado a sites da Web e, nesse contexto, é apenas uma maneira de permitir que você, usuário, modifique / atualize arquivos em um servidor remoto.
O diretório www / public_html sobre o qual você fala em sua pergunta provavelmente não é DocumentRoot . Esta é uma funcionalidade adicional do Apache, o módulo mod_userdir . Por favor, consulte sua documentação .
Como dito nos documentos, há uma configuração UserDir no arquivo de configuração do Apache que permite personalizar o nome desses diretórios de usuários, de onde o servidor web servirá os sites que pertencem a diferentes usuários.
Como não há restrições para UserDir , você pode ter qualquer coisa lá, mesmo foobar . Você pode julgar pelo conteúdo desse diretório (arquivos HTML, imagens) que esse pode ser um diretório de usuários que contém um site que está sendo exposto pelo Apache. Mas eu diria que fazer isso automaticamente com um script parece pouco confiável para mim. Sem mencionar que, por exemplo, você pode ter um diretório public_html que não seja um diretório do usuário, seu nome correspondendo ao valor padrão da configuração do Apache UserDir sendo apenas uma simples coincidência. Idealmente, para julgar um diretório se for um UserDir , você precisará acessar o arquivo de configuração do servidor web. E normalmente você não tem isso. Os provedores de hospedagem na Web podem colocar, no máximo, logs específicos do usuário em seu diretório pessoal.
Para resumir: se você precisar executar alguma ação com o diretório do usuário, ele deverá vir ao seu script como dados de entrada: argumento da linha de comando, configuração de um arquivo de configuração, etc., mas não tente adivinhá-lo.