Размер файла установлен в качестве ограничения в limits.conf

Я отредактировал файл /etc/security/limits.conf , чтобы ограничить размер файлов, которые может создавать пользователь "студент":

@student        hard    fsize           3001
@student        soft    fsize           2001

Теперь, когда я вхожу в систему будучи «студентом» и пытаясь создать несколько файлов, чтобы увидеть, какого размера я могу их создать, я сталкиваюсь со странным поведением:

student@node1:~$ ulimit -f
2001

student@node1:~$ dd if=/dev/zero of=file1 bs=1KB count=2049
2049+0 records in
2049+0 records out
2049000 bytes (2.0 MB, 2.0 MiB) copied, 0.0127504 s, 161 MB/s


student@node1:~$ dd if=/dev/zero of=file2 bs=1KB count=2050
File size limit exceeded (core dumped)

Затем я проверяю их размеры:

student@node1:~$ ls -l
-rw-rw-r--  1 student student 2049000 Dec  4 16:56 file1
-rw-rw-r--  1 student student 2049024 Dec  4 16:57 file2

Почему мне разрешено создавать файлы такого размера ? В команде dd я могу описать максимальный размер как bs = 1KB count = 2049 . Разве это не должно быть bs = 1KB count = 2001 , поскольку я поместил «2001» в /etc/security/limits.conf ?

0
задан 4 December 2020 в 20:07

1 ответ

Значение ulimit отображается в кибибайтах (2001 x 1024 = 2049024 байт), тогда как bs=1 КБ равно килобайтам (2049 x 1000 = 2049000). байт). Суффикс dd для кибибайтов — это просто K (или k), а не KB.

Итак

:~$ ulimit -f
2001

:~$ dd if=/dev/zero of=file1 bs=1k count=2001
2001+0 records in
2001+0 records out
2049024 bytes (2.0 MB, 2.0 MiB) copied, 0.0210431 s, 97.4 MB/s

:~$ dd if=/dev/zero of=file2 bs=1k count=2002
File size limit exceeded (core dumped)

:~$ ls -l file1 file2
-rw-rw-r-- 1 username username 2049024 Dec  4 13:15 file1
-rw-r--r-- 1 username username 2049024 Dec  4 13:15 file2
2
ответ дан 4 December 2020 в 18:17

Другие вопросы по тегам:

Похожие вопросы: