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사용자가 할당량을 활성화하지 않은 것으로 여전히 보고됩니다.

제가 아는 한, 이 두 악성 계정에는 특별한 것이 없습니다.

좀 더 자세히 알아볼 수 있나요 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주 동안 수정을 시도한 후에는 완벽하게 이해되었습니다.

관련 정보