Как работает утилита ulimit -u <ограничение>?
Мы выяснили, как устанавливать ограничения для процессов, порождённых bash. А как определённому пользователю на все процессы установить ограничения, а не только для процессов, запускаемых из консоли? Попытаемся ограничить, к примеру, размер создаваемых файлов.
Пользователь user0 смотрит свои ограничения:
Shell
user0@astra:~$ prlimit | grep FSIZE
FSIZE max file size 25600000000 51200000000 байты
user0@astra:~$
А вот есть такой файл /etc/security/limits.conf Он для этого всего и нужен. Из-по рута добавляю в него две строчки (ограничение на размер файла введу):
Сохраню. Файл /etc/security/limits.conf полностьюuser0 hard fsize 131072
user0 soft fsize 131072
Shell
user@astra:~$ cat /etc/security/limits.conf
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain> <type> <item> <value>
#
#Where:
#<domain> can be:
# - a user name
# - a group name, with @group syntax
# - the wildcard *, for default entry
# - the wildcard %, can be also used with %group syntax,
# for maxlogin limit
# - NOTE: group and wildcard limits are not applied to root.
# To apply a limit to the root user, <domain> must be
# the literal username root.
#
#<type> can have the two values:
# - "soft" for enforcing the soft limits
# - "hard" for enforcing hard limits
#
#<item> can be one of the following:
# - core - limits the core file size (KB)
# - data - max data size (KB)
# - fsize - maximum filesize (KB)
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open files
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
# - cpu - max CPU time (MIN)
# - nproc - max number of processes
# - as - address space limit (KB)
# - maxlogins - max number of logins for this user
# - maxsyslogins - max number of logins on the system
# - priority - the priority to run user process with
# - locks - max number of file locks the user can hold
# - sigpending - max number of pending signals
# - msgqueue - max memory used by POSIX message queues (bytes)
# - nice - max nice priority allowed to raise to values: [-20, 19]
# - rtprio - max realtime priority
# - chroot - change root to directory (Debian-specific)
#
#<domain> <type> <item> <value>
#
#* soft core 0
#root hard core 100000
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#ftp - chroot /ftp
#@student - maxlogins 4
# End of file
* hard fsize 50000000
* soft fsize 25000000
* hard nofile 4096
* soft nofile 2048
* hard nproc 2000
* soft nproc 1000
* hard core 0
user0 hard fsize 131072
user0 soft fsize 131072
user@astra:~$
Shell
user0@astra:~$ prlimit | grep FSIZE
FSIZE max file size 134217728 134217728 байты
user0@astra:~$
Shell
user0@astra:~$ dd of=sparse_file_1 bs=4K seek=32768 count=0
0+0 записей получено
0+0 записей отправлено
0 байт скопировано, 3,8622e-05 s, 0,0 kB/s
user0@astra:~$
user0@astra:~$ dd of=sparse_file_1 bs=4K seek=32769 count=0
Превышен лимит размера файла
user0@astra:~$
удаляются из файла /etc/security/limits.conf, как их и не было. ЧЯДНТ? Спасибо, кто откликнется. Астралинукс Орёл 2.12user0 hard fsize 131072
user0 soft fsize 131072