• 締切済み

chownの使い方

chownを使ってプログラミングしていますが、所有者が変わりません。 変更したいファイルはtmpの中にあります chownの書式は chown ユーザーID(直接入力),グループID(直接入力),"tmp/.$id._pfl" or die "chown 失敗"; です。 よろしくお願いします。

  • Perl
  • 回答数3
  • ありがとう数0

みんなの回答

回答No.3

UNIX系OSですか? (Linuxとか?) もしそうなら su で root になってからやってみましょう。

回答No.2

考えられる原因を挙げてみます。 1. ファイル名は正しいでしょうか? "/tmp/.$id._pfl"だったりしませんか? 2. システムによってはスーパーユーザしかchownを使いない場合があります。 perl経由ではなく、シェルから直接chownは出来るでしょうか?

satosi1
質問者

補足

シェルは今何か調べているのですがとりあえずtelnetはつかえないそうです。 また、1をやってみたのですがエラーになりました。

  • 314kmt
  • ベストアンサー率0% (0/1)
回答No.1

実行されているプラットフォームにもよるかもしれませんが、基本的にはスクリプトの実行ユーザの権限に依存しますよね。 権限はあるのでしょうか。 もしくは、tmp/.$id._pflのパスが見えていないせいかもしれません。 パスは見えていますか。

satosi1
質問者

補足

すいません。極限の意味を調べてみたのですがわかりません。 tmpフォルダのパーミッションは755です。 お願いします。

関連するQ&A

  • chownでファイル所有者なのに別の所有者に変更できない

    SunOS 5.10を使っていますがchownでファイルの所有者変更をしたいのですが、所有者で実行しても「所有者ではありません。」とメッセージがでてエラーとなります manで見ると 「ファイルの所有者(またはスーパーユーザー)だけが、ファイルの所有者を変更できます。 オペレーティングシステムは所有者の変更を制限するコンフィギュレーションオプション{_POSIX_CHOWN_RESTRICTED}を持っています。 このオプションが有効なときは、ファイルの所有者はそのファイルの所有者IDを変更することができません。 このオプションに関係なく、スーパーユーザーだけが所有者IDを変更できます。コンフィギュレーションオプションを設定する場合は、 /etc/systemファイルに次の行を挿入してください。 set rstchown = 1 このオプションを無効にする場合は、/etc/system ファイルに次の行を挿入してください。 set rstchown = 0 デフォルトでは{_POSIX_CHOWN_RESTRICTED}は有効です。system(4)とfpathconf(2)を参照してください。」 と書いてあり所有者でも使えそうですが、使える方法がmanで見てもわかりません。

  • chown -Rで .. だけが所有者変更されない

    Cent OSで、sudo chown -R hogeuser:hogegroupと打ったら、「..」以外は、所有者と所有グループが変更されたのですが、「..」だけは変更されませんでした ■質問 ・なぜ「..」だけ変更されないのでしょうか? ※ちなみに「.」は、以前から「hogeuser:hogegroup」でした ・「..」「.」って何ですか? ・「一つ上の階層」とか「現在階層」の意味でしょうか? ・それの所有者ってどういう意味でしょうか?

  • 所有権の一括変換

    RedHatLinux9でサーバーを作りました。 その際旧サーバーのSolarisからFTPでバックアップをとり、 データを移動させたのですが 当り前と言えば当り前で、所有者とグループが全部rootになってしまったんです。ftpはrootでログインしましたから。(tarで固めてからできればよかったんですが容量に余裕がなくFTPで落したんです。) この為、所有者の変更をしなければならないのですが ユーザー数が400程ある為、とても手作業ではできないので、ユーザー名をpasswdファイルから抜き出し chown user user chown user1 user1 chown user2 user2 ・ ・ ・ ・ ・ ・ といった内容のhenkan.prnというファイルを作り実行属性をつけて source henkan.prn としたらカレントディレクトリ内のファイルの所有者は問題なく修正できました。ただこれだとその下のフォルダ内のファイルには全く適用されないので困ってます。 何かいい方法はないでしょうか?? chmod なら-R つければできますよね。 でもchownでは使えないみたいなので。 よろしくお願いします

  • bashシェルでのmysqlCSVファイルについて

    bashシェルでのmysqlCSVファイルについて教えて下さい。 下記のスクリプト実行するとroot権限者で実施すればうまく動作するのですが、 xxxxユーザで実施した場合は、/tmp/mysql_export_linkdata.csvのファイル所有者がxxxxではなく、mysqlになってしまい ファイル削除(rm)ができません。 何が悪くてどう直せばよいですか? chownで変更したり、chmod 777にしたりやってみたのですが 駄目でした。 #/bin/bash if [ -f /tmp/mysql_export_linkdata.csv ] then rm /tmp/mysql_export_linkdata.csv echo rm /tmp/mysql_export_linkdata.csv fi mysql --user=xxxx --password=xxxx dburl <<eof select * from linkdata into outfile "/tmp/mysql_export_linkdata.csv" fields terminated by ','; eof chown xxxx.xxxx /tmp/mysql_export_linkdata.csv chmod 777 /tmp/mysql_export_linkdata.csv ls -lrt /tmp/mysql_export_linkdata.csv echo ls -lrt /tmp/mysql_export_linkdata.csv

  • TeraStationでUIDがずれる現象

    バッファロー製の1TBのNAS(TeraStation)でファームを上げたらsambaのUIDがずれてユーザ不明(Unix_userとかいうID)になってしまいました。 仕方がないので改造ネタにあったtelnetが利用可能な形にしてログイン、chownでなんとか乗り切りましたが、日本語コードが通らず、chownで日本語のみのファイルやフォルダが指定できません。仕方が無いのでPCのファイル共有からアルファベット名に変更してからchownをかけるというなんとも手間のかかる作業。たまにこの現象が発生するので大変困ってます。 皆さんは同じ経験をされたことないでしょうか?

  • <自分が所有者のファイルの所有者を変更出来ません>

    <自分が所有者のファイルの所有者を変更出来ません> SUSE Linux で、chown コマンドで所有者を変更しようとするのですが、 エラーとなり、困っています。 現象としては以下のようなものです。 (yamada 所有の sample.csh を、yamada 自身 が 所有者を kato にしようとしています) # who am i yamada pts/0 2010-05-11 13:53 (XXX.XXX.XXX.XXX) # ls -l sample.csh -rwxrwxrwx 1 yamada irap 10347 2010-05-11 10:14 sample.csh* # chown kato sample.csh chown: `sample.csh' の所有権を変更中: 許可されていない操作です

  • chownで所有権の変更ってrootしかできない?

    一般ユーザでログインしてchownを実行してファイルの所有者を他人にしようとすると権限がないエラーで怒られます。 やはりこれは、rootのみが実行できるコマンドなのでしょうか?

  • ディレクトリーの所有者変更

    環境:レンタルサーバー safe_modeはonになっています。 phpから作成したディレクトリーの所有者がapacheになってしまうので、所有者をuserに変更したいのですが出来ません。 chown()を使っても無理でした。 回避する方法はありませんでしょうか? 宜しくお願いします。

    • 締切済み
    • PHP
  • chownを使い、特定のユーザーだけ一気に他のユーザーに変更したい

    Linuxで、chownを使ってあるディレクトリ以下の所有者を一気に別のユーザーに所有者に変更したいのですが、どうすれば良いでしょうか。 test1というユーザーが所有者のディレクトリ、ファイルのみを全てtest2に変更し、rootやnobodyはそのままにしておきたいのです。 :例(ディレクトリ名は適当です) ディレクトリ名 現在の所有者 新しい所有者 bin test1 test2 bin/max test1 test2 line root root man test3 test3 home test1 test2 以上のように、所有者の移行を一気に行いたいのです。 方法などございましたら、お教えください。

  • rootでログインできない

    Linuxでchownを行うシェルを作成しました。 ここでミスってしまい、/以下のほとんどのファイルをhttpd(webサーバのユーザ)にしてしまいました。 復旧は無理とあきらめ、再インストールしようと思います。ここで何とか、必要なファイルを取り出そうとしています。 そこで、すべてのファイル所有(/以下)をrootへ変更し、権限を777にして、リブートすれば何とかなると、あまり深く考えずに実行してしまいました。 ところが、リブート後、rootでログインできなくなってしまいました。 通常ユーザではログインできるのですが、suもできません。これでは、フロッピーをマウントすることもできず、どうしていいかお手上げ状態です。 どなたか、アドバイスいただきたく、お願いいたします。

専門家に質問してみよう