PHP: chown - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

clearstatcache chmod

Last updated: Fri, 26 Jan 2007

view this page in

# chown

(PHP 3, PHP 4, PHP 5)

chown -- Изменяет владельца файла

## Описание

bool chown ( string filename, mixed user )

Осуществляет попытку изменения владельца файла с именем `filename` на владельца, чье имя передано в параметре `user` (в виде числа или строки). Только суперпользователь может изменять владельца файла.

Возвращает `TRUE` в случае успешного завершения или `FALSE` в случае возникновения ошибки.

> Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

> Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

См.также описание функции chmod().

add a note User Contributed Notes
chown
Tayfun Bilsel
11-Jan-2006 08:13
`Simple usage of the chown:
<?php
$file_name= "test";
$path = "/var/www/html/test/" . $file_name ;
$user_name = "root";
chown($path, $user_name);
?>`
Jens Vieler
23-May-2005 12:38
`for some reason i was searching for chown() with an "on this mashine"-unknown userid and found martijn's hint very interesting. the main problem is, that if the numerical uid is used within a variable, it is checked against the /etc/passwd and returns "unknown user". a little note:
use intval(), not inval()! so all in all it is:
chown($path_to_dir,intval($uidnumber));`
greg _at_ rhythmicdesign d.o.t com
23-Feb-2004 04:00
`<?php
function recurse_chown_chgrp($mypath, $uid, $gid)
{
$d = opendir ($mypath) ;
while(($file = readdir($d)) !== false) {
if ($file != "." && $file != "..") {
$typepath = $mypath . "/" . $file ;
//print $typepath. " : " . filetype ($typepath). "<BR>" ;
if (filetype ($typepath) == 'dir') {
recurse_chown_chgrp ($typepath, $uid, $gid);
}
chown($typepath, $uid);
chgrp($typepath, $gid);
}
}
}
recurse_chown_chgrp ("uploads", "unsider", "unsider") ;
?>
for older versions.. unfortunately, it seems I do not have permission to perform these functions.`
Richard Esplin
11-Oct-2003 08:49
`As far as I can tell, PHP's built in functions will not do a recursive chown or chgrp. But it wouldn't be hard to write a function for this. Here is some starter code based on an example written by John Coggeshall which I found at http://www.coggeshall.org :
<?php
function recurse_chown_chgrp($path2dir, $uid, $gid){
$dir = new dir($path2dir);
while(($file = $dir->read()) !== false) {
if(is_dir($dir->path.$file)) {
recurse_chown_chgrp($dir->path.$file, $uid, $gid);
} else {
chown($file, $uid);
chgrp($file, $gid);
}
}
$dir->close();
}
?>
I have not tested this code (but I think it will work) because for my current needs, a simple exec("chown -r $user.$group $path"); is sufficient. I would need this code if I were not in control of the contents of these variables because they can be dangerous on the command line.`
Klaus Zierer
27-Jun-2003 08:37
`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");`
martijn at sigterm dot nl
20-Jun-2003 07:28
`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).`
njs+php at scifi dot squawk dot com
21-Sep-2000 11:28
`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.`
add a note
clearstatcache chmod

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST