- PR -

ProFTPDでのユーザーアカウントの設定

1
投稿者投稿内容
Morley
会議室デビュー日: 2003/02/27
投稿数: 18
投稿日時: 2007-06-29 15:12
OSはDebian GNU/Linux 4.0で、ProFTPD 1.3.0
を使用しています。

複数のユーザーからファイル共有を行うために、
ユーザー毎にユーザー名とパスワードを設定してアクセスしたいと思います。

#addgroup group

#adduser user1 group

そうすると、ユーザー名:user1がgroupとして登録されて、
ProFTPDでuser1でログオン出来るようになりました。

同様に、user2、user3も作ってきます。

しかし、

/home/ + defaultuser
    + user1
    + user2
    + user3
     …

ルートの構造を見てみると、各ユーザー毎にフォルダが出来ており、
例えばuser1でログオンすると、
デフォルトのフォルダがuser1のフォルダになってしまいます。

これを、例えばuser1でもuser3でも、各ユーザーからログオンしたら、
デフォルトのフォルダをdefaultuserのフォルダにしたいと思います。
そのような事を行うには、どうすればよいでしょうか?
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2007-06-29 15:33
引用:

ルートの構造を見てみると、各ユーザー毎にフォルダが出来ており、
例えばuser1でログオンすると、
デフォルトのフォルダがuser1のフォルダになってしまいます。

これを、例えばuser1でもuser3でも、各ユーザーからログオンしたら、
デフォルトのフォルダをdefaultuserのフォルダにしたいと思います。
そのような事を行うには、どうすればよいでしょうか?



ユーザー毎のディレクトリは必要でしょうか?
また、defaultuserディレクトリと同じレベルの階層または上位ディレクトリへのアクセスは必要でしょうか?

簡単なところであれば、
/home/defaultuserディレクトリのみにし、
各ユーザーはそこまでしかアクセスできないようにする。
各ユーザーのhomeディレクトリを/home/defaultuserに設定する。
全ユーザーが上書き等可能にするのであれば、umaskの設定も必要かもしれない。

上記設定に変更することで、その設定をしているユーザーは、FTPでログインしたら/home/defaultuserになることになります。

各ユーザーごとのディレクトも必要なら、ホームディレクトリを同様に設定し、
/home以下に各ユーザー毎のディレクトリを作成して、
ユーザー毎のディレクトリに適切なオーナー設定とパーミッション設定してやれば、
希望に沿った状況になるかもしれません。
Morley
会議室デビュー日: 2003/02/27
投稿数: 18
投稿日時: 2007-07-03 01:15
ありがとうございます。

> ユーザー毎のディレクトリは必要でしょうか?

他のユーザー毎のディレクトリは不要です。
そのため、user1などを追加したとき、user1のフォルダは出来ない方が都合が良いです。

それで、いろいろ試行錯誤の結果、

proftpd.confの内容のDefaultRootを以下のように変更すると出来るようになりました。

DefaultRoot /home/defaultuser group
※user1、user2、user3…はgroupのグループにしてあります

しかし、まだ問題があります。

実際、user1などでアクセスすると、
リスト情報は取得できておりますが、
アップロード及び、ファイルの削除が出来ません。
アップロードしても550 permission deniedと表示されます。

おそらく、パーミッションの設定の問題だろうと思い、
いろいろと設定を変えてみましたが、逆にuser1でFTPにアクセス出来なくなったりと、
ますます分からなくなってきました。

rootのアカウントでログオンすれば当然削除もできますし、
アップロードも出来る状態です。
おそらく、これにも何らかの設定が必要だと思うのですが、
どこをいじれば解決できるのでしょうか?
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2007-07-03 10:49
引用:

Morleyさんの書き込み (2007-07-03 01:15) より:
ありがとうございます。

> ユーザー毎のディレクトリは必要でしょうか?

他のユーザー毎のディレクトリは不要です。
そのため、user1などを追加したとき、user1のフォルダは出来ない方が都合が良いです。

それで、いろいろ試行錯誤の結果、

proftpd.confの内容のDefaultRootを以下のように変更すると出来るようになりました。

DefaultRoot /home/defaultuser group
※user1、user2、user3…はgroupのグループにしてあります




ならば、最初に/home/defaultuserディレクトリをつくっておいて、adduserするときに/home/defaultuserをhomeディレクトリに指定してあげれば、ユーザーごとのhomeディレクトリも作成されないし、FTPでアクセスしたときに/home/defaultuserが初期のディレクトリになるとおもいます。

引用:

実際、user1などでアクセスすると、
リスト情報は取得できておりますが、
アップロード及び、ファイルの削除が出来ません。
アップロードしても550 permission deniedと表示されます。

おそらく、パーミッションの設定の問題だろうと思い、
いろいろと設定を変えてみましたが、逆にuser1でFTPにアクセス出来なくなったりと、
ますます分からなくなってきました。

rootのアカウントでログオンすれば当然削除もできますし、
アップロードも出来る状態です。
おそらく、これにも何らかの設定が必要だと思うのですが、
どこをいじれば解決できるのでしょうか?



/home/defaultuserのパーミッションは?
書かれている方法でやるのであれば、groupグループに書き込み権限つけたげればよいかと。

またデフォルトだと、umaskが022なので、ディレクトリだと755に、ファイルだと644にアップロードしたときにパーミッションがなるかと。
umaskの値を変更して、グループが7になるようにすれば、ファイルの上書きとかディレクトリの操作とかできるようになりますが。

umask値を書き換えると、FTPでの操作はすべて影響を受けるので、そのサーバの使い方によっては十分な注意が必要ですが。
#もしかしたらユーザーとかグループごとにumask値を設定できたりするのかもしれませんが、やったことないのでわからない。できないかもしれない



#引用だけしてエンター押してそのまま投稿してしまったので編集

[ メッセージ編集済み 編集者: kalze 編集日時 2007-07-03 11:01 ]
Morley
会議室デビュー日: 2003/02/27
投稿数: 18
投稿日時: 2007-07-03 19:05
そちらの方が良さそうですね。
adduserの時に、ホームディレクトリを設定すれば、
ちゃんと/home/defaultuserに飛んでくれました。

但し、依然としてパーミッションの問題が解決できずにいます。

引用:

/home/defaultuserのパーミッションは?



パーミッションは775に設定しました。
当初は755になっていましたが、グループも許可する設定にしました。

現在の所有者とグループは次のようになっております。

最初にOSで作成したユーザーは、
所有者:dafaultuser、グループ:admin
で作成してあり、同時にホームディレクトリ/home/defaultuser
が自動的に作成されました。

そこに、ユーザー名:user1、グループ:groupにて、
ホームディレクトリを/home/defaultuserに指定して作成しました。
同様に、user2、user3…もグループ:groupにて、
ホームディレクトリを/home/defaultuserに指定して作成しております。

そうすると、各ユーザーログオンは出来ておりますが、
アップロードで550 permission deniedが表示されます。

おそらくProFTPDのproftpd.confの設定が悪いのだと思い、

DefaultRoot ~ !admin
#defaultuserユーザーのみ上位ルートまで行けるように設定

User defaultuser
Group group

Umask 002

上記のように設定しました。

しかし、これでもうまくいきません。
同様に550 permission deniedではじかれてしまいます。

もしかすると、ルート権限のユーザーで作成したホームディレクトリ(所有者defaultuser)
には、後で追加したユーザーがアップロードすることは出来ないのはないかと思い始めてしまったのですが、
どこが違うのか教えていただけないでしょうか?
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2007-07-03 20:09
原因はご自身の書き込みの中にあるとおもいます。
いっぺんにやろうとされず、落ち着いてひとつずつやってみてはいかがでしょうか?

引用:

パーミッションは775に設定しました。
当初は755になっていましたが、グループも許可する設定にしました。



/home/defaultuserディレクトリのパーミションは775

引用:

現在の所有者とグループは次のようになっております。

最初にOSで作成したユーザーは、
所有者:dafaultuser、グループ:admin
で作成してあり、同時にホームディレクトリ/home/defaultuser
が自動的に作成されました。



オーナーはdefaultuser、defaultuserユーザーはadminグループに属する。
/home/defaultuserのパーミッションは775なので、
defaultuserユーザーは、オーナーでパーミションは7なので読み書き実行可能。
defaultuserユーザーの属するadminグループに所属するユーザーも7なので読み書き実行可能。
それ以外のユーザーは5なので、読み実行可能で、書き込み不可。

引用:

そこに、ユーザー名:user1、グループ:groupにて、
ホームディレクトリを/home/defaultuserに指定して作成しました。
同様に、user2、user3…もグループ:groupにて、
ホームディレクトリを/home/defaultuserに指定して作成しております。



user1,user2,user3などその他後から追加したユーザー(その他ユーザーとする)は、groupグループに属する。

/home/defaultuserディレクトリのパーミッションは先ほど書いた通り。

その他ユーザーは、/home/defaultuserディレクトリに関しては、defaultuserユーザーではないので、オーナーではない。

また、groupグループに属しておりadminグループに属しているので、グループでのアクセス制御には関係ない(adminグループにも属している可能性があるが、書き込みには書かれていないので、adminグループには属していないものとする)

となると、その他のパーミッションにより制御される。
このときのパーミッションは5なので、読みと実行のみ可能。
ログイン時は読みだけなので問題は起きない。
ダウンロードも同様。
アップロード時には書き込み権限が必要になるが、書き込み権限がないので
引用:

そうすると、各ユーザーログオンは出来ておりますが、
アップロードで550 permission deniedが表示されます。


という結果になる。

ということで、
引用:

おそらくProFTPDのproftpd.confの設定が悪いのだと思い、


この考えは間違い。
単純にパーミッションの設定が悪いだけとなります。


引用:

User defaultuser
Group group


この設定は、何か別の件で必要ですか?
結構怖い設定ですよね、これ。
セキュリティ上のリスクを理解し、その上で必要だと判断されての設定であるなら自分の杞憂にすぎないのですが。
少なくとも今回の件には一切関係のない設定であるので、ちょっと気になりました。
1

スキルアップ/キャリアアップ(JOB@IT)