Ir para o conteúdo
gucapi

owner dos ficheiros/pastas

Mensagens Recomendadas

gucapi    0
gucapi

ola!

estou com uns problemazitos no php e no servidor


mkdir('pasta', 0777);

eu uso isto para criar pastas alguem me sabe explicar como é que eu ao criar uma pasta ou quando faço um upload defino o ower dessa pasta ou ficheiro é que pelos vistos por defeito ele mete o owner como "99" que é nobody ja me falaram em algo relacionado com o safe_mode mas nunca tive este problema.

continuando a ficar em nobody o owner dos ficheiros e pastas criadas n consigo eliminar por ftp esses ficheiro e mexaer nessas pastas

se alguem poder ajudar... obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gurzi    2
Gurzi

Já experimentaste usar o chown ?

Tenta modificar o dono do arquivo para o usuario (nome ou número). Somente o superusuário pode modificar o dono de um arquivo.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

eu já tentei mas axo k usei mal, porue deu-m erro

tipo, cmom é que sei o o numero? ha alguma função para saber o nº? e o nome é o meu login para o servidor?

desculpa a ignorancia mas nunca tinha precisado de ter esta preocupação de um momento para o outro isto começou a fazer...

obrigado pela dica

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

@gucapi

Para trocar o "dono" ou "Owner" do ficheiro ou pasta podes utilizar a função chown(); do PHP

Exemplo:

<?php
$pasta = '/nome/da/pasta/'; //A pasta
$usuario = 'nobody';  //Nome do usuario coloca o teu 

$dono = chown( $pasta, $usuario );

if($dono) {
echo "O dono da pasta $pasta foi alterado para $usuario";
} else {
echo "Não foi possivel alterar o dono da pasta $pasta";
}
?> 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

vou reformolar o problema

agr o que eu quero é que kuando eu faço o mkdir ele meta logo o owner sem ser nobody

alguem m sabe dizer como é que ele faz isso automaticamente ???

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

pois isso ja percebi mas eu ao fazer mkdir($pasta, 0777); ele mete o owner como 99 k pelo k o gajo dos alojamentos disse é nobody, mas se eu criar por cliente d ftp ele mete 1420

será k vale a pena apostar nas funções ftp do php???

tou a dar em doido

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

Só o usuario "root" (super usuario) pode colocar "safe_mode" no servidor. já agora, qual é a importancia de modificar o dono de um ficheiro ou pasta ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

é simples pk eu criando uma pasta ele esta a por nobody, dpois se eu precisar de mexer por um cliente de ftp n consigo porque n tenho permissao :S

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

bem pelos vistos ate consigo eliminar a pasta o problema axo k agr esta nos ficheiros em que faço upload para la k n da nem para renomear será de usar a função copy()?????

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

Tenho quase a certeza que o problema é a função  copy();  porque a função copy(); copia o ficheiro do upload para um novo ficheiro, ou seja, cria um novo ficheiro e esse novo ficheiro perde as permissões. Em vez de usares a função copy(); acho que podes usar a função  move_uploaded_file();

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

bem pronto ja fiz mas vamos entao voltra ao mkdir, pk eu testei ele criou uma pasta com permição nobody :s e claro pelos visto as imagens k fi uplod ficaram tb com nobody

ja n sei o k fazer

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

será que o erro possa estar aki:


mkdir( $folderPath, 0777 ) ;

ou:


$oldumask = umask(0) ;
mkdir( $folderPath, 0777 ) ;
umask( $oldumask ) ;

qual a vantagem do umask

continuando os adminsitradores do meu servidor dizem k a culpa é dos scripts k tenho no pc

o safe-mode esta activo e uso o move_upload_file para fazer o upload das imagens

no site do php diz k

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

neste momento os scripts tem o owner 1420 e mete-m as imagens com owner 99

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
-IceBurn-    0
-IceBurn-

É complicado utilizar a função mkdir(); (e outras) com safe mode em on.

Eu se fosse a ti pedia ao host para meter safe mode em off, caso contrário não estou a ver outra solução... pelo menos para já.  :hmm: LoL

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

O PHP cria uma pasta ou ficheiro com o "Owner"  nobody porque ele não consegue identificar o teu usuario e mais vale colocar o "Owner" como nobody porque assim todos podem mexer no ficheiro ou pasta sem problemas. Para não permitir que todas pessoas mexam nos teus ficheiros ou pastas tens que utilizar "chmod();" para colocar as permissões apenas para o teu usuario. Não te preocupes com isso de owner de um ficheiro como "nobody" eu nunca me preocupei com isso e não tenho tinho nenhum tipo de problema.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

pronto mas eu neste momento tenho assim o codigo


if(mkdir($pasta, 0777)){
     return true;
}else{
     return false;
}

e axo k ele nem se quer esta a por 777 nas permissoes....

dpois fica nobody e por ftp n consigo nem eliminar os ficheiros dessa pasta :S

e os gajos do servidor ainda dizem k o problema é meu, tenho outro servidor noutra empresa que funciona tudo bem com este pedasso de codigo n metendo nobody

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

Os usuarios que fazem o upload de ficheiros não têm username no servidor onde o teu site esta hospedado e por isso o PHP não pode colocar o Owner do teu ficheiro como um qualquer por isso tem que colocar como nobody

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

Não demorei muito tempo para identificar esta linha na tabela "apache" do ficheiro "phpinfo(gucaicom).pdf"

User/Group nobody(99)/99

No outro ficheiro não tem essa linha... não sei se este é o problema.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gucapi    0
gucapi

pois eu ja confrontei os gajos com essa conparação mas eles dizem k n ha kualker probolema

que k eu concluo é que um aparee uma tabela apache e outro n :S

eles mandaram-m um script para fazer uploads e criar pastas por ftp com as funções php, apesar d n estar mt satisfeito com a solução apresentada pronto ta a funcionar

mas n gosto da solução

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade