setquotaが自動的に失敗する

setquotaが自動的に失敗する

次のコマンドを使用して、自分のシステムのユーザーグループのファイルシステムクォータを設定しようとしています。

setquota -b /mntpnt < /file/with/quotas

これはほぼすべてのユーザーに適用されるようです。しかし、私がこうすれば:

getent passwd 
  | awk -F: '{ if ($3 >=1000 && $3 < 2000) print $1 }' 
  | xargs quota -u 
  | grep 'none' 
  | awk '{print $5}'

クォータが設定されていないユーザーの名前を印刷するために、このパイプラインは名前です/file/with/quotas

setquota -u user 1024 1024 0 0 /mntpnt

これは期待どおりに何も報告せず、終了ステータスは0です。ただし、quota -u userユーザーはクォータを有効にしていないと報告されています。

私の知る限り、これら2つの悪意のあるアカウントには特別なものはありません。

もっと詳しく知ることができますかsetquota?試してみましたが、strace新しい情報は生成されませんでした。なぜこのように動作するかについての提案がありますか?

カーネルクォータバージョン:6.5.1
OS:Debian Squeeze 6.0.1
FS:ext4

修正する

壊れたと思われる他の理由があり、削除して/mntpnt/aquota.user再作成しました。quotacheck -c /mntpnt上記の症状はすべて新製品で発生しますaquota.user

ベストアンサー1

過去にext3でも同様の問題がありました。クォータファイルが自動的に破損し、これらの奇妙な状況が発生しました。そのユーザーのクォータを 0 に設定して戻しても問題は解決しません。

問題のファイルは/path/to/mountpoint/aquota.userです。

結局のところ、私たちがしたことは、クォータをオフにし、ファイルを削除し、クォータを再びオンにし、クォータデータを正確に取得するためにシステムを再スキャンすることでした。このようにして以来、3年を超えるような問題は再び発生しませんでした。

これを実行した後に引用符を再検索するコマンドはですquotacheck -cuvf /path/to/mountpoint

これは本当に衝撃的で畏敬の念を引き起こすアプローチです。これは実際にはアップストリームのバグですが、2週間の修正を試みた後は完全に理解されました。

おすすめ記事