Por que o httpd deu um erro após um link simbólico em meu diretório pessoal no Fedora?

1

Acabei de reativar um aplicativo após a alteração do sistema operacional. Link simbólico para ele está localizado em / var / www / myapp. Depois de alterar as permissões para 0775 (mesmo 0777 temporário), alterando o proprietário para o apache: myuser, myuser: apache, myuser: myuser e apache: apache e desabilitando o SELinux - eu tive o suficiente. Nada funciona e ainda recebo a mensagem irritante:

Forbidden You don't have permission to access / on this server

log de erros:

[client 127.0.0.1:38050] AH00037: Symbolic link not allowed or link target not accessible: /var/www/myapp

Estou totalmente chateado com esta situação desperdiçada quase toda a noite e metade da noite: /

O / var / www / myapp e todos os arquivos dentro dele são 775 e possuem o apache: apache em execução.

Eu também tentei reinstalar o httpd, php e seus módulos do apache, naveguei por www e nada. : / Preciso de ajuda o mais rápido possível por favor!

EDITAR: Eu esqueci de mencionar - / var / www / myapp é um link simbólico para / home / myfolder / projects / myapp < --- isso foi chmod'ed e chown'ed também.

EDIT 2:

Agora adicionei Usuário e grupo como "meu usuário" em conf / httpd.conf para permitir que ele grave na minha pasta pessoal e o erro symlink não é mais, mas o apache ainda não pode gravar na pasta que meu usuário é proprietário de ... Também tentei misturar meu usuário com o usuário do apache em conf / httpd.conf e definir privilégios semelhantes ao /home/.../myapp. Um grande W T F com distribuições RedHat !! Não é a primeira vez que os privilégios são ignorados assim no meu caso. : /

EDIT 3: Eu resolvi meu problema removendo o sistema operacional do Fedora e instalar o UBUNTU: D, funciona como um encanto. Os mesmos privilégios, os mesmos arquivos - não há problema com links simbólicos ou escrevendo para o apache: meu_usuário ... não entendi ... -_-

    
por Mr.TK 09.03.2015 / 01:26

4 respostas

3

Resolvido!

A resposta a esta questão é ter o link simbólico pertencente ao proprietário do arquivo / diretório para o qual ele está apontando.

Este passo adicional foi introduzido como um patch (o qual apenas o Fedora está aplicando ou assim parece).

Lendo a fonte do Apache (o que eu tive que fazer porque não há resposta na web que eu pudesse encontrar, e isso é o mais próximo disso.) parece que OPT_SYM_OWNER é o culpado e isso é o que você pegou ( e eu) fora.

A correção é para chown -h myuser:mygroup <the_symlink> , em que myuser:mygroup é o mesmo que o arquivo / diretório de destino.

Espero que isso ajude alguém assim que o pôster original removeu o Fedora e as respostas de outras pessoas abordaram algum outro problema.

    
por 16.11.2015 / 00:34
2

Verifique se os links simbólicos estão habilitados dentro do próprio apache. O Apache não permite necessariamente o redirecionamento de links simbólicos, mesmo quando as permissões estão bem.

<Directory /var/www/myapp>
    Options +FollowSymLinks
    AllowOverride All
    ...
</Directory>
    
por 09.03.2015 / 01:31
2

Assumindo que o FollowSymLinks está definido corretamente, suponho que o problema é que o seu diretório home não permite que mais ninguém o atravesse ( As permissões do diretório pai são importantes ao acessar um subdiretório? ). Esse é o padrão no Fedora; parece o padrão no Ubuntu é mais permissivo, e é por isso que mudar para isso funcionou.

Supondo que este seja o caso, a mensagem de erro não é a mais informativa, mas também não está errada.

Eu aprecio que você esteja frustrado, mas não acho que algo realmente misterioso esteja acontecendo aqui, nem algo particularmente errado; o padrão do Fedora é apenas mais seguro / sensível à privacidade. (Para o registro, também é bastante fácil para que isso funcione com o SELinux ativado e oferecendo uma camada extra de proteção, se você quiser.

Então, aviso: Eu trabalho no Fedora, e seria incrível se todos usassem o Fedora - mas tudo bem se eles não o fizerem; é um grande mundo Linux. No entanto, aqui está a coisa ... Mais cedo ou mais tarde, você vai encontrar algo parecido com isso no Ubuntu, onde uma mensagem de erro estranha não conta toda a história. E pode ser que jogar fora a janela e ir ao Arch ou ao openSUSE ou $ flavoroftheday - ou até mesmo ao Fedora - resolva o seu problema, só porque temos uma configuração um pouco diferente . Mas quanto tempo até o próximo problema? Eu sei que você realmente quer apenas fazer o seu trabalho e não ter o seu computador no caminho, mas no final das contas, ficar com raiva e mudar tudo vai resultar em mais trabalho.

    
por 09.03.2015 / 19:32
1

Eu trabalhei com a mensagem do SELinux:

SELinux is preventing httpd from read access on the directory *****.

***** Plugin catchall_boolean (89.3 confidence) suggests ******************

If you want to allow httpd to read user content Then you must tell SELinux about this by enabling the 'httpd_read_user_content' boolean.

...

Do setsebool -P httpd_read_user_content 1

    
por 19.08.2016 / 00:11