perlでパーミッションの変更をするには?

[上に] [前に] [次に]
みくに 1999/05/27(木) 04:17:33
perlでパーミッションの変更を行いたいのですが

chmod 0644, abc.txt;

としても変更されません。。 私なりにいろいろ思考錯誤したの
ですがどうしても原因がわからないのでどなたか教えて下さい。

chmod 0644, abc.txt;
chmod 0644, "abc.txt";
chmod 0644 abc.txt; 
↑この3つめの場合だと
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, you@your.address and inform them of the time the error occurred, and
anything you might have done that may have caused the error.
が出てしまいます。。

何が原因なのでしょうか。。。 よろしくおねがいします。



ふじ 1999/05/27(木) 04:23:23
chmod(0644, "abc.txt");

chmodの後は、リスト。

ふじ 1999/05/27(木) 04:27:54
あれ、もしかして、変更しようとしているファイルの所有者と、
Perlの実行権限のあるユーザーが違ってませんか?
#例えば、FTPでアップロードしたファイルをCGIからパーミッション変更しようとしているとか?

みくに 1999/05/27(木) 04:36:08
はい。。 FTPでアップロードしたファイルをCGIからパーミッションの
変更をしようとしております。。。

この作業(FTPでアップロードしたファイルをCGIからパーミッションの変更)は無理なのでしょうか・・。
無茶な質問で申し訳ありません。 よろしくおねがいします。

ふじ 1999/05/27(木) 04:57:47
>この作業(FTPでアップロードしたファイルをCGIからパーミッションの変更)は無理なのでしょうか・・。
CGIが、その(設置者)の権限で動くように設定してあるサーバーでない限り、無理だと思います。

どうしてもしたいなら、あらかじめそのファイルをCGIで作成して置けば、
変更できますが・・・

#!/usr/local/bin/perl

system("cp アップロードしたファイル パーミッションを変更したいファイル");
chmod (0664 , "パーミッションを変更したいファイル");

こんな感じのCGIを作って一度動かせば、アップロードしたファイルがコピーされます
(所有者はCGIの実行権限者)から、以後、それについてはCGIからパーミッションの操作が出来るかと。

みくに 1999/05/27(木) 06:51:19
[[解決]]
ふじさん。 どうもありがとうございます。

明確に理解できました。
詳しく方法まで記載していただき助かりましたっ。

[上に] [前に] [次に]