(PHP 4, PHP 5, PHP 7)
chmod — Modifica as permissões do arquivo
$filename
, int $mode
)
Tenta mudar as permissões do arquivo especificado do arquivo para o dado em
modo
.
filename
O caminho para o arquivo.
mode
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 caso de falha.
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.