今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 簡単なPHPスクリプトを動かしてみよう
  3. ファイルから1行ずつ読み込む - fgets()
  4. ユニークなファイル名の一時ファイルを作成 - tempnam()
  5. ヒアドキュメント

ファイルの所有者を変更 - chown()

当ページのリンクには広告が含まれています。

プログラミング言語PHPで、ファイルの所有者を変更する関数 chown()を紹介します。

chown関数

bool chown ( string $filename , mixed $user )
指定したファイルの所有者を、指定したユーザーへ変更します。
引数
$filename
ファイル名、あるいはファイル名を含むパスを指定します。
$user
ユーザー名、あるはユーザー番号を指定します。
返り値
ファイル所有者の変更が成功した場合は trueを、の他の場合は falseを返します。

サンプルコード

指定したファイルを、指定したユーザーへ変更するサンプルコードです。

chown( ファイル、ユーザー )
<?php
$file = "file1.txt";
$usr = "root";

var_dump( chown($file, $usr) );
?>

スクリプトを実行する前にlsコマンドでファイル所有者を確認します。ファイルの所有者は「karuma」になっています。

$ ls -l file.txt 
-rw-rw-r-- 1 karuma karuma  9月 16 14:31 2013 file.txt

rootでスクリプトを実行した結果です。trueが返されているので、ファイル所有者の変更が成功しました。

bool(true)

再度、lsコマンドでファイル所有者をみてみましょう。「root」になってますね。

$ ls -l file.txt 
-rw-rw-r-- 1 root karuma 0  9月 16 14:31 2013 file.txt

一般ユーザーでスクリプトを実行すると以下のようなWarningが表示され、ファイルの所有者が変更できません。

PHP Warning:  chown(): Operation not permitted in /home/karuma/chown.php on line 5
bool(false)

root、あるいはファイル変更権限のあるユーザーでスクリプトを実行するか、sudoコマンドでスクリプトを実行しましょう。

ファイル の人気記事

  1. ファイルから1行ずつ読み込む - fgets()
  2. ファイル名を変更 - ファイルを移動 - rename()
  3. 文字列にファイルを書き込む - fwrite()、fputs()
  4. 親ディレクトリのパスを表示 - dirname()
  5. ディレクトリを作成 - mkdir()
  6. ユニークなファイル名の一時ファイルを作成 - tempnam()
  7. 相対パスから絶対パスを取得 - realpath()
  8. バイナリセーフにファイルを読み込む - fread()

関連記事(一部広告含む)