Eu arriscaria um palpite de que o problema está nas permissões do diretório pai "/home/john". Seu diretório pessoal provavelmente está configurado para que apenas seu usuário tenha acesso (ou seja, chmod 700) a ele (é bom que seu diretório pessoal seja chmod 700, não o altere).
Fazendo algo como:
mkdir /BSTablespace chown postgres:postgres /BSTablespace
e depois
CREATE TABLESPACE magdat OWNER maggie LOCATION '/BSTablespace';
deve funcionar bem.
Em relação ao usuário maggie:os usuários do banco de dados não são os mesmos que os usuários do sistema operacional. Isso não quer dizer que você não poderia ter um usuário em ambos os lugares chamado maggie-- mas você precisaria criar o usuário no banco de dados e no sistema operacional para que isso acontecesse.