2016-04-27 5 views
2

私のコンピュータのユーザが "無限"のフォルダ/ファイル(空でも)を作成すると、はるかに遅くなる(スタックさえも)、ユーザーが作成できるファイル/ディレクトリの最大数を制限したい。ユーザがlinuxで作成できるフォルダの最大数を制限するには

1人のユーザーが膨大な数のファイルを作成しようとしますが、それは他のすべてのユーザーにとって問題になるため、セキュリティ上の問題になります。 どうすればよいですか? 各ユーザーが作成できるファイル/ディレクトリの最大数を制限する

+0

あなたはどのファイルシステムを使用していますか?それはext4ですか?私はあなたが無制限と言って以来、それは何を割り当てられていると仮定して – jgr208

+1

クォータチェックが使用されます。 – jgr208

答えて

1

これはクォータのために設計されたものです。あなたは用および/またはグループごとに、ユーザーごとに、制限を強制するために、ファイルシステムのクォータを使用することができます。

  • 使用できるブロックの数を使用することができ、ディスクサイズのスペースの量作成できるiノードの数。

inodeの数は、基本的にユーザーが作成できるファイルとディレクトリの数を制限します。

私はあなたがさらに読むことをお勧めされ、多くのソースでファイルシステムのクォータを設定する方法について豊富な、非常に良い品質のドキュメントがあります:

+0

ありがとう、それは私が必要とするものです –

2

最初

は、/ etc/fstabの変更をファイルシステム上のクォータチェックを有効にして、あなたが監視したい対応するファイルシステムにキーワードUSRQUOTAとGRPQUOTAを追加する必要があります。

次の例では、これが行われた後、ユーザーとグループの両方のクォータのチェックがホーム・ファイル・システム

# cat /etc/fstab 
LABEL=/home /home ext2 defaults,usrquota,grpquota 1 2 

リブート/上で有効になっていることを示しています。

ファイルシステムのディスククォータチェックを有効にした後は、最初にすべてのクォータ情報を以下のように収集します。

# quotacheck -avug 
quotacheck: Scanning /dev/sda3 [/home] done 
quotacheck: Checked 5182 directories and 31566 files 
quotacheck: Old file not found. 
quotacheck: Old file not found. 

ここで、特定のユーザーのクォータ情報を編集するには、次のようにedquotaコマンドを使用します。

たとえば、ユーザー 'ramesh'のディスククォータを変更するには、edquotaコマンドを使用します。このコマンドは、次のようにエディタでハード制限値を開きます。

# edquota ramesh 

Disk quotas for user ramesh (uid 500): 
    Filesystem   blocks  soft  hard  inodes  soft  hard 
    /dev/sda3   1419352   0   0  1686  0  0 

ハードリミット - あなたはハードリミットとして2ギガバイトを指定した場合、ユーザーは2ギガバイトの後に新しいファイルを作成することができません

ソフトリミット - あなたがソフトリミットとして1ギガバイトを指定した場合、ユーザーはなります1GBの制限に達すると、「ディスククォータを超えました」という警告メッセージが表示されます。しかし、ハード制限に達するまで新しいファイルを作成することは可能です。

最後に、ユーザークォータでレポートを作成する場合は、次のことができます。

毎日のcronジョブにquotacheckを追加します。次のように/etc/cron.dailyディレクトリにあるquotacheckコマンドを毎日実行するquotacheckファイルを作成します。これにより、ルート電子メールアドレスにquotacheckコマンドの出力が送信されます。

# cat /etc/cron.daily/quotacheck 
quotacheck -avug 
+1

実際にはブロック制限ではなくinode制限が必要です。しかしこれは本当にRTFMの質問です。 – o9000

関連する問題