sudo не может дать команду ulimit?

Я пытаюсь записать решение для другого пользователя, когда я заметил, что sudo ulimit-c возвращает команду, не найденную. Таким образом я попробовал это:

$ sudo ulimit -c
  sudo: ulimit: command not found

$ ulimit -c
0

$ sudo -i
# ulimit -c
0

так... это работает от корня, и это работает с sudo, но не с sudo. Действительно ли это - ошибка?

3
задан 17 October 2015 в 02:33

2 ответа

ulimit оболочка встроенная команда как cd Вы не можете использовать как:

sudo cd /test/

так же Вы не можете использовать

sudo ulimit -c

Это не отдельная программа. sudo ищет двоичный файл для выполнения, но существует нет ulimit двоичный файл.

Если Вы хотите изменить свой предел затем, можно определить пределы в limits.conf файл. Те пределы определяются в /etc/security/limits.conf или /etc/security/limits.d/. можно взять справку от этого вопроса

или

используйте оболочку как:

sudo sh -c "ulimit -c"
sudo bash -c "ulimit -c"
sudo bash -c ulimit 
sudo sh -c "ulimit -n"
4
ответ дан 1 December 2019 в 15:37

Действительно ли это - ошибка?

Нет. sudo не знает о командах, которые встроены к различным оболочкам, как ulimit и cd.

Вам подарили два способа обратиться к этому — использование оболочки как посредник и корректировка пределов в другом месте, чем на самой командной строке. Вот одна треть для ситуаций, когда каждый пытается использовать такие команды для создания модификаций, чтобы обработать состояние, а не отобразить его.

Если можно было бы выполнить оболочку builtins как sudo ulimit … или sudo cd … на самом деле изменить состояние процесса, которое не было бы особенно полезно. Это не выполнило бы ничто иное впоследствии в процессе, пределы которого или рабочий каталог были изменены. Можно было бы скорректировать пределы процесса или рабочий каталог только для непосредственного выхода из процесса.

Но существуют наборы инструментов с загружающими цепочку внешними командами с этими функциями. Они делают то же самое, поскольку оболочка builtins, но также и цепочка загружаются к другой программе после того, как они сделали так.

Они - различные наборы инструментов daemontools-семейства — daemontools, daemontools-вызов-на-бис, еда, perp, s6, freedt, и runit.

Инструменты для установления пределов и затем цепочки, загружающейся к другой программе, по-разному softlimit (daemontools), softlimit (freedt), softlimit (daemontools-вызов-на-бис) softlimit (еда), s6-softlimit (s6), chpst (runit), и runlimit (perp). Таким образом, можно было выполнить, скажем, энергию с измененным базовым пределом размера файла с помощью daemontools, daemontools-вызовом-на-бис, едой или freedt с командой:

sudo softlimit -c 0 vim

еда также имеет подобное ulimit управляйте, чтобы использовал различные размеры единицы для различных пределов тем используемым с softlimit:

sudo ulimit -c 0 vim

То же идет для изменения каталога, для которого существует еда chdir внешняя загружающая цепочку команда:

sudo chdir /etc vim rc.local

и cd внешняя команда от execline:

sudo /command/cd /etc vim rc.local
1
ответ дан 1 December 2019 в 15:37

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

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