我编辑了/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,因为我在/etc/security/limits.conf中放了“2001”吗?
该
ulimit
值似乎以千字节为单位(2001 x 1024 = 2049024 字节),而bs=1KB
以千字节为单位(2049 x 1000 = 2049000 字节)。kibibytes的dd
后缀只是K
(或k
)不是KB
。所以