• ベストアンサー

所有者は違うがグループが同じファイルに対して、グループ所属者がFTPでRW,chmodするのを許可したい

 現在サーバを運用しているのですが、同じグループに属するユーザーには、ファイル所有者(そのグループに属している)に関係なくFTPにおいて読込、書込、上書、権限変更を許可したいのですが、実現方法がわかりません。 *Windowsにおける、グループ権限に相当することを実現させたいです。 ユーザー A、B、C 上記ユーザーはグループ:webに所属。 ドキュメントルート以下は以下のように構成 ドキュメントルートはAのみアクセス可能(RW,chmodなど全権限) /----dirA Aのみアクセス可能(RW,chmodなど全権限)   |   --dirB A、Bのみアクセス可能(RW,chmodなど全権限)   |   --dirC A、Cのみアクセス可能(RW,chmodなど全権限)  以上のように、Aを管理者的に扱い、B、Cはchrootして限定的なアクセスにしています。  当然、B、Cは自分のホームにファイルをUPして全権限を行使できますが、その際 所有者がBやCになってしまうため、Aがchmodしたり、上書きできません。  Aをrootにして、FTPアクセスさせれば解決できそうですが、セキュリティ上rootでFTPアクセスは避けたいです。  どのように設定すればよいでしょうか?  よろしくお願いいたします。 環境 OS FreeBSD 4.7 FTP ProFTPD 1.2.10

質問者が選んだベストアンサー

  • ベストアンサー
  • you-m
  • ベストアンサー率58% (190/327)
回答No.1

少なくとも、パーミッションの変更は、古典的なUNIXのオーナー/パーミッションの世界では、ファイル/ディレクトリのオーナーと、rootのみが可能です。 しかし、書き込み権限(上書き含む)については、ファイルのパーミッションでw権限があれば可能です。 ファイルのパーミッションが66* ディレクトリのパーミッションは77* であることが条件です。 その他のユーザ向けのパーミッションは、0でも4でも必要に応じてでしょう。 新規に書き込んだ際の、パーミッションを決定するのは、umaskの値です。 これは、ユーザ固有の設定から、ProFTPDの設定によるものまで、いろいろなところで設定可能ですが、この場合は、ProFTPDの設定で、行った方がいいでしょう。 デフォルトで作成されるパーミッションを、 ファイル→664 ディレクトリ→775 とする場合、バーチャルホストディレクティブや、グローバル設定に Umask 002 002 という設定を追記します。 ProFTPDを再起動すれば、設定が変更されます。 以上、ご参考までに。

ytgs
質問者

お礼

早速のご回答ありがとうございました。 やはりパーミッションの変更はできないのですか… umaskについて詳しく記述していただいてありがとうございました。

ytgs
質問者

補足

パーミッションが変更できないことは仕様ということで、受け入れるしかないようですね。 実際のサーバ運用でこのようなことを要求されたときに、どのような代替手段がとられるのでしょうか?(やはり「それはできません、我慢してください」なのでしょうか…)

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

他の方がお書きのようにchmodは設定では出来ませんが、運用でカバーするとすると、一旦ダウンロードして、サーバーから削除して、アップロードすれば自分がオーナーになるので、chmod出来ます。 >実際のサーバ運用でこのようなことを要求されたときに、どのような代替手段がとられるのでしょうか? Aさんがsshでログインしてsudoでchmodするんでしょう。

ytgs
質問者

お礼

ご回答ありがとうございます。  手順数が多いですが、確かにそれが確実な現状ベースでの解決法なんですよね…。  ただいかんせんサイトの規模が大きく、ユーザーのPCへの親和性の高低が激しいので、トラブルの元になりそうで躊躇しています。 (じゃあ、rootでFTPするのとどっちが危険か、と問われれば黙るしかないのが現状です)  Aさんのssh、sudoは、unixのuの字も知らないレベルを考えるとちょっと非現実的な選択肢かな、と思っています。マニュアルを作れば良いのでしょうけど、複雑だどうのと文句を言われるのでしょう…  じゃあ、私がsudo chmodすれば良いかと言うと、更新をかけたいその時に私が張り付いている訳ではないので、「出来ない、どうしてだ!→トラブル」になってから指示がまわってきてしまいます。

  • you-m
  • ベストアンサー率58% (190/327)
回答No.2

そもそも、そういった複雑なACLを要求する場合、FTPと言う選択そのものがまずいというのが、一般的な解だと思います。 FTPは、歴史の古いプロトコルですから、特にUNIX系のOSの場合、構造的に近代的なACLへの対応は難しい上に、あまり需要も無いと思われます。 パーミッションの変更という点を除けば、実際のところかなり複雑なACLが実現できないわけじゃ無いので、困ってはいないというところでしょうか。ProFTPDのグループ別のchrootなど、かなり便利なんですけどね。 実のところ、WindowsでIISだと、ファイルシステムの強力なACLが、まま使えるのですが、それにしてもFTPというプロトコルの性質上、そこから権限の変更が行えるわけではありません。 結局、FTPを使う限りにおいて(まあFTPに限った話ではないかもしれませんが)、その利点も欠点もきちんと理解した上で、設計・構築しないと稼動したはいいけど、あれができない、これができないという話になると言う事だと思います。 どうしてもパーミッションの変更が行いたい場合は、別途管理画面等をWebで提供して、そういった操作が可能なようにするしか無いですが、そのような用途の場合、通常のCGIの実行ユーザでは、やはり無理です。rootでwebサーバを実行するとか、root権限で稼動する別のプログラムにリクエストを渡すとか、さも大仰な話になりますね。

ytgs
質問者

補足

 なるほどよくわかりました。  root権限でのwebサーバ実行や、別プログラムによる解決などはちょっと工数が多そうなので選択肢から外れます…  sftpを使用できるFTPクライアントか、winscpあたりを使って最低限セキュアな経路を確保してroot接続で当面の解決を図ろうと思います。(あまりやりたくないのですが、どうもこの要求はクリティカルなようなので)  あとFTP接続してきたrootにchrootをかけてドキュメントルート以上を塞ぐ、程度のことはしようと思います。

関連するQ&A