PHP の標準関数を目的別に調べることができる辞典

ホーム > PHP 標準関数逆引き辞典 > ファイル > ファイル、ディレクトリの所有者を変更する

PHP 標準関数逆引き辞典

:: reverse dictionary ::

ファイル

※ソースファイルについて


ファイル、ディレクトリの所有者を変更する

ファイル、ディレクトリの所有者を変更するには、chown 関数を使います。

≪ディレクトリ構造(サンプル) 変更前≫

D:ディレクトリ  F:ファイル

                        [所有者]
D (ドキュメントルート)
├ F samp01.txt         watabe
├ F samp02.txt         watabe
└ D mydir              watabe
chown("samp01.txt", "user01");
chown("samp02.txt", "user02");

chown("mydir", "user03");

ソースファイル

samp01.txtsamp02.txtmydir の所有者が変更されます。

≪ディレクトリ構造(サンプル) 変更後≫

D:ディレクトリ  F:ファイル

                        [所有者]
D (ドキュメントルート)
├ F samp01.txt         user01
├ F samp02.txt         user02
└ D mydir              user03

▼ 関数

int chown(string f, mixed u)

ファイル f の所有者を u に変更します。

所有者の変更に成功した場合は true 、失敗した場合は false を返します。 また、ファイル f が存在しない場合は false を返します。


u に指定する値は、/etc/passwd に設定されているユーザ名またはユーザ番号(UID)です。

≪/etc/passwd の例≫

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
nobody:x:99:99:Nobody:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologain
watabe:x:500:1000:watabe:/home/watabe:/bin/bash
user01:x:501:1000:user01:/home/user01:/bin/bash
user02:x:502:1000:user02:/home/user02:/bin/bash
user03:x:503:1000:user03:/home/user03:/bin/bash

/etc/passwd には、各ユーザの情報が一行ずつ設定されています。
ユーザ一人分の情報はさらに、コロン( : )で区切られています。

区切られた情報を「フィールド」と呼びます。 左から「第1フィールド」、「第2フィールド」、「第3フィールド」、... となります。

ユーザ名は第1フィールド、ユーザ番号は第3フィールドになります。

例えば、user01 のユーザ番号は 501 になります。

  user01:x:501:1000:user01:/home/user01:/bin/bash
  ↑        ↑
ユーザ名  ユーザ番号

u には、このユーザ番号を指定することもできます。

chown("samp01.txt", 501);  // user01
chown("samp02.txt", 502);  // user02

chown("mydir", 503);       // user03

ソースファイル

●引数

f … ファイル名、またはディレクトリ名
u … 変更後のユーザ名、またはユーザ番号

●戻り値

・所有者の変更に成功 … true
・所有者の変更に失敗 … false
・ファイル f が存在しない … false

●バージョン

PHP3 、PHP4 、PHP5

●補足1

スーパーユーザのみがファイル、ディレクトリの所有者を変更できます。

●補足2

指定したユーザが存在しない場合は、何も行いません。
(所有者は変更されず、警告メッセージも表示されません)

●補足3

動作は、Unix/Linux の chown コマンドと同じです。

$ ls -l
total 4
drwxrwxrwx+ 2 watabe    www   96 Oct 29 21:34 mydir
-rw-rw----+ 1 watabe    www    6 Oct 14 22:31 samp01.txt
-r-xr-xr-x+ 1 watabe    www    6 Oct 14 22:31 samp02.txt

$ chown user01 samp01.txt

$ chown user02 samp02.txt

$ chown user03 mydir

$ ls -l
total 4
drwxrwxrwx+ 2 user03    www   96 Oct 29 21:34 mydir
-rw-rw----+ 1 user01    www    6 Oct 14 22:31 samp01.txt
-r-xr-xr-x+ 1 user02    www    6 Oct 14 22:31 samp02.txt

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

ファイル - file -


ホーム > PHP 標準関数逆引き辞典 > ファイル > ファイル、ディレクトリの所有者を変更する

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com