Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henriqued

[Resolvido] Problemas Shell_exec("chown")

Recommended Posts

Bom dia a todos, estou com problemas com o shell_exec("chown"), é o seguinte, estou fazendo um upload de zip e a aplicação funciona da seguinte maneira: no momento do upload eu faço a extração do arquivo, crio um diretorio com o nome do arquivo, movo o arquivo para a nova pasta, do todas as permissoes neste arquivo atraves do chmod, depois renomeio o arquivo, e depois tenho que mudar o proprietario deste arquivo para root. Até a parte de renomear o arquivo ta funcionando blzinha mas na hora de mudar o proprietario não muda. meu codigo é o seguinte:

session_start();
	$id_usuario = $_SESSION['usesysid'];
	
	require_once("../classes/Tabelas.php");
	require_once("../classes/TabelasDAO.php");
	
	$descricao = $_POST['taDescricao'];
	//echo $descricao;
	
	$arquivo = $_FILES['flArquivo']['name']; //Recebe nome do arquivo
	$arquivo_temp = $_FILES['flArquivo']['tmp_name']; 
	$tamanho = $_FILES['flArquivo']['size']; // Recebe tamanho do arquivo
	$tipo = $_FILES['flArquivo']['type']; // Recebe tipo extencao
	$diretorio=explode(".",$arquivo);
	$nm = rand().".html";
	$nome_arquivo = $diretorio[0].".htm";
	$data = date ("Y-m-d");
   	
	
		if (isset($arquivo_temp))
		{
					shell_exec("rm $arquivo");
					shell_exec("rm $diretorio[0]");
					shell_exec("rm $diretorio[0]/*");
					shell_exec("rm $arquivo/*");
			if (is_uploaded_file($arquivo_temp))
				{		
					move_uploaded_file($arquivo_temp, $arquivo);
					shell_exec("unzip $arquivo -d $diretorio[0]");
					
					shell_exec("chmod 777 $diretorio[0]");
					shell_exec("chmod -R 777 $diretorio[0]/*");
					shell_exec("chmod 777 $arquivo");
					shell_exec("chmod -R 777 $arquivo/*");
					shell_exec("chown root:intranet $arquivo");
					
					$novo_nome = rename($diretorio[0] . "/" . $nome_arquivo,$diretorio[0] . "/" . $nm);
					$name = $diretorio[0]."/".$nm;
					shell_exec("chown root:intranet tabela_vivo/teste.txt");
					
					$tabelas	= new Tabelas();
					$tabelasDAO = new TabelasDAO();
					
					$tabelas->Set_id(4);
					$tabelas->Set_id_usuario($id_usuario);
					$tabelas->Set_id_operadora(2);
					$tabelas->Set_arquivo($nm);
					$tabelas=$tabelasDAO->save($tabelas);
				}
		}
	echo '<script> window.location="tela_tabelas.php"</script>';	
?>

se alguem puder me ajudar, o problema éno shell_exec("chown root:intranet tabela_vivo/teste.txt"

 

o restante esta fuincionado corretamente

 

desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o erro?

Por que está usndo tanto shell_exec()? Dá para fazer isso com funções do próprio PHP. É mais rápido que shell_exec(), pois não precisa abrir um shell para executar os comandos.

 

Também não entendi por que você quer mudar o proprietário para root.

Além disso, com permissão 777, tanto faz o proprietário (isso é até inseguro)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o erro?

Por que está usndo tanto shell_exec()? Dá para fazer isso com funções do próprio PHP. É mais rápido que shell_exec(), pois não precisa abrir um shell para executar os comandos.

 

Também não entendi por que você quer mudar o proprietário para root.

Além disso, com permissão 777, tanto faz o proprietário (isso é até inseguro)

Beraldo , obrigado por responder, estou usando shell_exec por que não conheço outro modo de fazer, estou desenvolvendo a pouco tempo ai conheço pouco ainda, com relação ao codigo não apresenta erro algum mas tbm não muda.

Eu estou tentando mudar o proprietario por que quando faço um upload estou sobrescrevendo um arquivo antigo so que na hora de abrir o arquivo abre o arquivo antigo e não o novo, ja ,limpei a cache mas não consigo abrir o arquivo novo, ai pensei que poderia ser o proprietario que estivesse com problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não tem a ver com proprietário de arquivo. O upload deve estar falhando. Verifique o retorno de move_uploaded_file

 

Para remover um arquivo, use unlink(). Para mudar permissões ou o proprietário, o PHP têm funções homônimas às do Unix: chmod() e chown()

 

Use 755 em vez de 777

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não tem a ver com proprietário de arquivo. O upload deve estar falhando. Verifique o retorno de move_uploaded_file

 

Para remover um arquivo, use unlink(). Para mudar permissões ou o proprietário, o PHP têm funções homônimas às do Unix: chmod() e chown()

 

Use 755 em vez de 777

Ok, obrigado pela ajuda, tentarei utiliza-la em minha aplicação, e conhecer melhor as funções do PHP.

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não tem a ver com proprietário de arquivo. O upload deve estar falhando. Verifique o retorno de move_uploaded_file

 

Para remover um arquivo, use unlink(). Para mudar permissões ou o proprietário, o PHP têm funções homônimas às do Unix: chmod() e chown()

 

Use 755 em vez de 777

Ok, obrigado pela ajuda, tentarei utiliza-la em minha aplicação, e conhecer melhor as funções do PHP.

 

Valeu

 

Consegui resolver o problema ou melhor, não fiz nada e passou a atualizar o upload, mudei minha aplicação trabalhando com banco de dados ao inves de sobrepor o arquivo antigo e não tive mais problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.