• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

gucapi

owner dos ficheiros/pastas

31 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@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";
}
?> 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois eu tentei mas

Warning: chown(): Operation not permitted in /home/gucaicom/public_html/gjenviados/pages/gerirfotos_admin.php on line 49

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Apenas o usuario "root" (super usuario) pode modificar o dono de um ficheiro ou pasta :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

dissera-m agr k posso resolver isto com algo relacionado com safe_mode mas n sabem explicar como

alguma sugestao???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se colocares a permissão "777" no ficheiro ou pasta o cliente de ftp não te deixa mexer ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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()?????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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