このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

FTP転送で新規×上書き△の状態に…?? このメッセージに返信する
日時: 2010/02/08 21:27
名前: もここ。
URL:
お世話になります。
FTP転送についてご教授ください。

「userA」というユーザにホームディレクトリより上のアクセスを許可し、
「/var/www/html」にファイル転送をこれまで正常に行っていました。

しかし突然問題が生じ、
サーバーにある同名のファイルに上書きする転送は出来るのですが、
全く新規のファイルを転送することが出来ないのです。
例えば「file.html」を転送しようとするとサーバーに同名のファイルがない場合、
"file.htmlへのアクセス権限がありません。"のエラーがFTPソフトにでます。

ディレクトリによって新規ファイルの転送が出来るものも幾つかあります。
htmlディレクトリの下の、とあるフォルダであったり、
wwwディレクトリの下の、例えばwordpressディレクトリ等がそうです。

たとえ同名のファイルであっても、サーバー側で新規ファイルを新たに作成し、同名のファイルをクライアントから転送しようとした場合は、同様のエラーが出て転送に失敗します。

アクセス権は755ですし、ディレクトリにアクセス自体は出来ています。
サーバー側でディレクトリやuserAのアクセス権等の変更操作は特にしていません。


突然起こったことなので、原因が特定できず悩んでいます。
何より転送しようとしているファイルにアクセス権がないとエラーが出るのが??????です。
解決策や何処を調べてみるべきか等のご意見どうぞよろしくお願いします。
記事編集 編集
Re: FTP転送で新規×上書き△の状態に…?? このメッセージに返信する
日時: 2010/02/09 10:16
名前: stranger
URL: http://ja.528p.com/
/var/www以下のディレクトリのユーザ・グループ・パーミッションを調べます
書き込むディレクトリのユーザが上位のディレクトリのユーザと異なる場合は
上位のディレクトリのその他のユーザの実行権が必要になります
最低限711以上 デフォルトだとroot root 755になっていると思う

FTPサーバはvsftpdだと思うけど vsftpd.confの設定に思い違いはありませんか
opensshのchrootなどを設定して まちがった設定をしていませんか
記事編集 編集
Re: FTP転送で新規×上書き△の状態に…?? このメッセージに返信する
日時: 2010/02/09 18:16
名前: 中学生管
URL:
>サーバーにある同名のファイルに上書きする転送は出来るのですが、
>全く新規のファイルを転送することが出来ないのです。

上書きができるが新規のファイルが作れないのは、directoryのpermissionで
書き込みが許可されていないからだと思う。

/var/www/html/ の所有者がuserA以外、例えばrootになっていて
パーミッションが755とかだとuserAにとっては書き込み権限が無いから
"新規"ファイルができない。ただし新規でなければファイルのパーミッションで
書き込み権限があれば変更できる。と思ったけど・・・
記事編集 編集
Re: FTP転送で新規×上書き△の状態に…?? このメッセージに返信する
日時: 2010/02/09 23:35
名前: もここ。
URL:
strangerさま、中学生管さま、ありがとうございました。

実行権は755だったので問題ありませんでしたが、
lsで転送ができないファイルの所有者がrootになっているのを確認したので
userAに変更したら上手くいきました。

実行権があっても所有権がないと上書きしかできない。。。
冷静に考えたらそうですね;;;
それにしても/wwwの所有者がrootであっても、サブディレクトリの所有権がuserAであれば
そのディレクトリには転送ができるっていうのは変な感じですね、勉強になりました。

これまで/htmlの所有者がデフォのrootだったと思うのですが、
userAでどうして新規ファイル作成できていたのでしょうか。。。思い違い。。。?

とにかく助かりました、ありがとうございました。
記事編集 編集
Re: FTP転送で新規×上書き△の状態に…?? このメッセージに返信する
日時: 2010/02/10 07:00
名前: stranger
URL: http://ja.528p.com/
>実行権があっても所有権がないと上書きしかできない。。。
>冷静に考えたらそうですね;;;
>それにしても/wwwの所有者がrootであっても、サブディレクトリの所有権がuserAであれば
>そのディレクトリには転送ができるっていうのは変な感じですね、勉強になりました。

クライアントでCentOSを使っているなら
/homeの所有者を調べてみるとよい
root root 755になっているはず
その下の一般ユーザ(例 /home/hoge)は
hoge hoge 700になっていると思う

/home/hoge/public_htmlでwebを公開しようと思う場合
/home/hogeをhoge hoge 701以上にしないと
httpdの子プロセスの実行ユーザ(たぶんapache)が読みにいけない
上位と下位のディレクトリのユーザが異なる場合は
上位の{その他のユーザ]に実行権が必要になります

vsftpdはrootでのアクセスをデフォルトでは禁止しているとおもう
opensshはデフォルトでrootのアクセスを許可しているので
sshでroot転送できてしまいます

あるいはサーバ上でrootで圧縮ファイルを解凍したりすると
rootの持ち物になる場合があります
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -