PHP 8.4.0 RC2 available for testing

chown

(PHP 4, PHP 5, PHP 7, PHP 8)

chownModifica o proprietário do arquivo

Descrição

chown(string $filename, string|int $user): bool

Tenta modificar o proprietário do filename para user. Somente o superusuário pode modificar o proprietário de um arquivo.

Parâmetros

filename

Caminho para o arquivo.

user

O nome do usuário ou número.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Uso simples de chown()

<?php

// Nome de usuário e do arquivo que serão usados
$file_name= "foo.php";
$path = "/home/sites/php.net/public_html/sandbox/" . $file_name ;
$user_name = "root";

// Define o usuário proprietário
chown($path, $user_name);

// Verifica o resultado
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: No Windows, esta função falha silenciosamente quando aplicada a um arquivo normal.

Veja Também

  • chmod() - Modifica as permissões do arquivo
  • chgrp() - Altera o grupo do arquivo

add a note

User Contributed Notes 4 notes

up
6
martijn at sigterm dot nl
21 years ago
If chown is filled with a variable ( chown ("myfile", $uid) the uid will be looked up through pwget_uid.

So if you need to set a non existing uid use inval($uid).
up
1
Mikevac at yahoo dot com
16 years ago
I've only tested this on Solaris 10 so your mileage may vary.

To allow the apache daemon to change file ownership without being root, add the following line to /etc/system:

set rstchown=0

Reboot the server.

There are security concerns doing this as this modification allows any user to change ownership of their files to anyone else.
up
0
Klaus Zierer
21 years ago
If you want to chown a symlink, PHP will follow the symlink and change the target file.

If you want to chown the symlink, you have to use shell_exec("/bin/chown user.group symlink");
up
-2
njs+php at scifi dot squawk dot com
24 years ago
If you allow sudo execution for chmod by "nobody" (www, webdaemon, httpd, whatever user php is running under)in this manner, it had better be a system on which the owner is able to be root and no one else can run code, else your whole system is compromised. Someone could change the mode of /etc/passwd or the shadow password file.

Other system commands (sudo mount) and so forth are similar.
To Top