
次のコマンドを使用して、自分のシステムのユーザーグループのファイルシステムクォータを設定しようとしています。
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週間の修正を試みた後は完全に理解されました。