PHP File Permissions

Resumo : neste tutorial, você aprenderá como lidar com permissões de arquivos PHP , incluindo verificação e alteração de permissões de arquivos.

As permissões de arquivo especificam o que um usuário pode fazer com um arquivo, por exemplo, lê-lo, gravá-lo ou executá-lo. Observe que o PHP concede automaticamente as permissões apropriadas nos bastidores.

Por exemplo, se você  criar um novo arquivo para gravação, o PHP concederá automaticamente as permissões de leitura e gravação.

PHP fornece algumas funções úteis para verificar e alterar as permissões de arquivo.

Verificando permissões de arquivo

PHP tem três funções úteis que verificam as permissões dos arquivos:

  • is_readable()a função retorna truese o arquivo existe e é legível; caso contrário, ele retorna false.
  • is_writable()a função retorna truese o arquivo existir e for gravável; caso contrário, ele retorna false.
  • is_executable()a função retorna truese o arquivo existe e é executável; caso contrário, ele retorna false.

Vejamos o seguinte exemplo:

<?php

$filename = 'readme.txt';

$functions = [
	'is_readable',
	'is_writable',
	'is_executable'
];

foreach ($functions as $f) {
	echo $f($filename) ? 'The file ' . $filename . $f : '';
}Linguagem de código:  HTML, XML  ( xml )

Além dessas funções, o PHP também oferece a fileperms()função que retorna um número inteiro, que representa as permissões definidas em um determinado arquivo. Por exemplo:

<?php

$permissions = fileperms('readme.txt');

echo substr(sprintf('%o', $permissions), -4); //0666Linguagem de código:  HTML, XML  ( xml )

Alterando permissões de arquivo

Para alterar a permissão ou modo do arquivo, você usa a chmod()função:

chmod ( string $filename , int $permissions ) : boolLinguagem de código:  PHP  ( php )

A chmod()função possui dois parâmetros:

  • $filenameé o arquivo cujas permissões você deseja alterar.
  • O parâmetro $permissions consiste em três componentes de número octal que especificam restrições de acesso para o proprietário, o grupo de usuários no qual o proprietário está e todos os demais nesta sequência.

A chmod()função retorna trueem caso de sucesso ou falsefalha.

O argumento de permissões é representado por um número octal que contém três dígitos:

  • O primeiro dígito especifica o que o proprietário do arquivo pode ler, gravar ou executar no arquivo.
  • O segundo dígito especifica em que grupo de usuários no qual o proprietário está pode ler, gravar ou executar o arquivo.
  • O terceiro dígito especifica o que todos os outros podem ler, escrever ou executar no arquivo.

A tabela a seguir ilustra o valor de cada dígito que representa a permissão de acesso para usuários específicos (proprietário, grupo de usuários ou todos os outros):

Valor Permissão
0 não consegue ler, escrever ou executar
1 só pode executar
2 só posso escrever
3 pode escrever e executar
4 só consigo ler
5 pode ler e executar
6 sabe ler e escrever
7 pode ler, escrever e executar

O exemplo a seguir define permissão para que o único proprietário possa ler e gravar um arquivo, apenas todos os outros possam ler o arquivo:

<?php 
$filename = './readme.txt';
chmod($filename, 0644);Linguagem de código:  HTML, XML  ( xml )

Observe que colocamos 0antes 644para instruir o PHP a tratá-lo como um número octal.

Resumo

  • Use is_readable(), is_writable(), is_executable()para verificar se um arquivo existe e é legível, gravável e executável.
  • Use a chmod()função para definir permissões para um arquivo.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *