Forum und email

chmod

(PHP 4, PHP 5)

chmod — Modifica as permissões do arquivo

Descrição

bool chmod ( string $arquivo , int $modo )

Tenta mudar as permissões do arquivo especificado por arquivo para o dado em modo .

Note que modo não é necessariamente um número octal, então strings (como "g+w") não funcionarão. Para garantir que a operação seja bem sucedida é necessário prefixar modo com zero (0):

<?php
chmod 
("/arquivo/diretorio"755);   // decimal; provavelmente incorreto
chmod ("/arquivo/diretorio""u+rwx,go+rx"); // string; incorreto
chmod ("/arquivo/diretorio"0755);  // octal; representação correta do modo
?>

O parâmetro modo consiste em três números em octal especificando as restrições de acesso para o proprietário, grupo de usuário do proprietário e finalmente qualquer outro, nessa ordem. Cada número pode ser calculado pela adição das permissões necessárias para o alvo. O número 1 significa direito de execução, 2 significa direito de escrita, 4 significa direito de leitura. Some esses números para ter os direitos desejados. Você pode ler mais sobre os modos em sistemas UNIX com 'man 1 chmod' e 'man 2 chmod'.

<?php
// Escrita e leitura para o proprietario, nada ninguem mais
chmod ("/somedir/somefile"0600);

// Escrita e leitura para o proprietario, leitura para todos os outros
chmod ("/somedir/somefile"0644);

// Tudo para o proprietario, leitura e execucao para os outros
chmod ("/somedir/somefile"0755);

// Tudo para o proprietario, leitura e execucao para o grupo do prop
chmod ("/somedir/somefile"0750);
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: O usuário atual é aquela sob o qual o PHP é executado. Provavelmente não é o mesmo usuário que você normalmente usa quande acessa uma conta shell ou FTP. O modo pode ser modificado apenas pelo usuário dono do arquivo na maioria dos sistemas.

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.

Nota: Quando safe mode esta ativado, o PHP confere se os arquivos e diretórios os quais você vai operar tem o mesmo UID (proprietário) do que o script que esta sendo executado. Em adição, você não pode definir SUID, SGID e sticky bits.

Veja também chown() e chgrp().