Ограничение ресурса по умолчанию для пользователя root

Я случайно увидел, что в моем Ubuntu 12.04 некоторые ресурсы пользователя root ограничены. Я ничего не ограничил явно, и мой limit.conf, что касается пользователя root, пуст. Вот вывод ulimit -a для пользователя root

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 95931
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 95931
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Так что я считаю, что это ограничение по умолчанию. Поэтому мой вопрос заключается в том, что является причиной ограничения этих ресурсов пользователя root по умолчанию? Теперь, когда я пытаюсь установить предел файла как неограниченный как пользователь root с помощью приведенной ниже команды, я получаю сообщение об ошибке «Операция не разрешена».

ulimit -H -n unlimited

Что мешает мне установить ограничение на бесконечность и насколько безопасно установить его на бесконечность?

2
задан 13 January 2014 в 07:12

1 ответ

Эти ограничения по умолчанию жестко запрограммированы в исходном коде ядра. Эти пределы установлены для процесса init ядром, а другие процессы наследуют его от init. См. здесь .

Почему вы получаете ошибку при попытке установить неограниченное количество открытых файлов, скорее всего, потому что общесистемная настройка не является неограниченной, проверьте ее с помощью cat /proc/sys/fs/file-max. См. здесь :

file-max & amp; file-nr:

Значение в file-max обозначает максимальное количество дескрипторов файлов, которое выделит ядро ​​Linux. Когда вы получаете много сообщений об ошибках из-за отсутствия файловых дескрипторов, вы можете захотеть увеличить этот лимит.

Вы можете изменить этот общесистемный лимит, если вы запустите, например, echo 300000 > /proc/sys/fs/file-max как root или с sysctl -w fs.file-max=300000 как root. Чтобы сделать эти изменения постоянными, добавьте строку, подобную следующей

fs.file-max=300000

, в файл /etc/sysctl.conf, например, запустив echo "fs.file-max=300000" >> /etc/sysctl.conf от имени пользователя root.

0
ответ дан 13 January 2014 в 07:12

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

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