ファイルオーナーとグループを変更する
chown
はファイルのオーナーとグループを変更します。
第一引数にはオーナーの uid を、第二引数にはグループの gid を数値で指定しなければいけません。
uid または gid に -1 を指定すると、その部分は変更しないことを表します。
第三引数以降はオーナーとグループを変更したいファイルのリストを指定します。
chown
はオーナーとグループの変更に成功したファイルの数を返します。
chown 0, 0, './sample1.txt', './sample2.txt';
ファイルにはファイルパスだけでなくファイルハンドルを指定することもできます。 ただし Windows 環境ではファイルハンドルによるオーナーの変更がサポートされておらず、 例外が投げられますので注意してください。
open my $fh, '>', './sample.txt';
chown 0, 0, $fh;
なお、ファイルハンドルを指定する場合は、ベアワードを使わないでください。 ベアワードのファイルハンドルを指定すると例外が投げられますので注意してください。
open FH, '>', './sample.txt';
chown 0, 0, FH; # ファイルハンドルをベアワードで指定すると例外が投げられるので注意!
なお、多くのシステムでは、ファイルのオーナーやグループの変更はスーパーユーザー権限でないと実行できませんので注意してください。
Windows では、chown
は何もしません。
そしてエラーにもなりません。常に chown
は 0 を返します。