proftpdの権限制御
proftpdは完璧な権限制御で有名です...このチュートリアルの目的はproftpdの権限設定の過程を理解させることです
私のmusic ftpを例に挙げました.
コード:
#「~/xishare/」は、ftpuser 1がアップロードできるほか、他のユーザーはダウンロードできません.「~」に該当するユーザーを表すホームディレクトリ.
DenyAll
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
DenyUser !ftpuser1
AllowStoreRestart on
#「~/pub/」は、アップロード、ダウンロード、ディレクトリの作成、削除はできません
DenyAll
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
#Rootユーザーのftpへのアクセスは許可されていません
RootLogin off
#shellが空の場合、ユーザーのログインを許可するように設定します.
RequireValidShell off
#各FTPユーザーが自分のディレクトリの下で、前のレベルのディレクトリを表示できないことを制限する
DefaultRoot ~
AllowRetrieveRestart on#をダウンロードすると、ブレークポイントの継続が許可されます
AllowStoreRestart on#アップロード時、ブレークポイントの再送信を許可
ServerIdent off#サーババージョン情報のマスク
#最大接続試行回数
MaxLoginAttempts 8
#ログファイルの場所
SystemLog/var/log/proftpd.log
OKなぜこんな設定をしたのか見てみましょう...
ステップ1まずmusicディレクトリ全体の権限を設定します.onlyupというユーザーのmusicディレクトリでのすべての権限を禁止しました...
pubfxpこのグループは書くだけで、名前を変更して、削除する権限がなくて、readこのグループは読む権限しかありません..
ステップ2私は80 gにいます.2/incomingでonlyupに書く権限を許可...これはmusicディレクトリの対応する権限設定を上書きします..しかし、他の説明のない権限は禁止されています.
これにより、少ない制御コードで権限制御の目的を達成することができる.:)
proftpdのグループ設定機能はとても使いやすいです...mysqlで検証しました
mysqlの文の部分に文を加えるだけで
SQLGroupInfo groups groupname gid members
具体的なグループの内容は、次の例です.
PHPコード:
私のmusic ftpを例に挙げました.
コード:
<directory /usr/local/music>
# /usr/local/music
<limit RMD DELE SITE_CHMOD>
denygroup pubfxp
</limit>
# pubfxp (RMD), (DEL), chmod (SITE_CHMOD)
<limit RMD RNTO DELE STOR MKD SITE_CHMOD RETR>
denyuser onlyup
</limit>
# onlyup , (RMD), (DEL), chmod (SITE_CHMOD), (STOR), (MKD), (RETR), (RNTO)
<limit RMD RNTO DELE SITE_CHMOD MKD STOR>
denygroup read
</limit>
# read , (RMD), (RNTO), (MKD), (DEL), chmod (SITE_CHMOD)
</directory>
<directory /usr/local/music/80g_2/incoming>
# /usr/local/music/80g_2/incoming
<limit MKD STOR>
allowuser onlyup
</limit>
# onlyup , (MKD), (STOR)
</directory>
#「~/xishare/」は、ftpuser 1がアップロードできるほか、他のユーザーはダウンロードできません.「~」に該当するユーザーを表すホームディレクトリ.
DenyAll
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
DenyUser !ftpuser1
AllowStoreRestart on
#「~/pub/」は、アップロード、ダウンロード、ディレクトリの作成、削除はできません
DenyAll
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
#Rootユーザーのftpへのアクセスは許可されていません
RootLogin off
#shellが空の場合、ユーザーのログインを許可するように設定します.
RequireValidShell off
#各FTPユーザーが自分のディレクトリの下で、前のレベルのディレクトリを表示できないことを制限する
DefaultRoot ~
AllowRetrieveRestart on#をダウンロードすると、ブレークポイントの継続が許可されます
AllowStoreRestart on#アップロード時、ブレークポイントの再送信を許可
ServerIdent off#サーババージョン情報のマスク
#最大接続試行回数
MaxLoginAttempts 8
#ログファイルの場所
SystemLog/var/log/proftpd.log
OKなぜこんな設定をしたのか見てみましょう...
ステップ1まずmusicディレクトリ全体の権限を設定します.onlyupというユーザーのmusicディレクトリでのすべての権限を禁止しました...
pubfxpこのグループは書くだけで、名前を変更して、削除する権限がなくて、readこのグループは読む権限しかありません..
ステップ2私は80 gにいます.2/incomingでonlyupに書く権限を許可...これはmusicディレクトリの対応する権限設定を上書きします..しかし、他の説明のない権限は禁止されています.
これにより、少ない制御コードで権限制御の目的を達成することができる.:)
proftpdのグループ設定機能はとても使いやすいです...mysqlで検証しました
mysqlの文の部分に文を加えるだけで
SQLGroupInfo groups groupname gid members
具体的なグループの内容は、次の例です.
PHPコード:
groupname gid members
read 99 ndvip,zg,HYD,ronor
mysqlのサポートドキュメント:
http://www.castaglia.org/proftpd/doc...HOWTO-SQL.html
ここで、グループのgidはシステムが するグループを することが ましいことに してください.そうでなければ、 の なエラーが します. はここで1 カードを った...
また...proftpdの をデバッグ...confファイルに
SQLLogFile/var/log/proftpd_sql_log
それからlogを します..hoho...