Как защитить Ubuntu от вилочной бомбы

По умолчанию релиз 12.04.2 будет поставляться с более новым ядром 3.5 из Quantal, поэтому любая установка с компакт-диска 12.04.2 будет иметь это ядро ​​по умолчанию.

Пользователи, которые изначально установили 12.04 или 12.04.1, могут обновиться в соответствии с приведенными выше инструкциями.

Дополнительная информация здесь

71
задан 27 January 2011 в 19:47

20 ответов

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

sudoedit /etc/security/limits.conf

Затем добавьте эту строку в конец этого файла:

*    hard     nproc     nnn

где:

hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки. nproc - максимальное количество процессов на пользователя. nnn - это номер, который вы должны рассчитать для своей системы:
ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1

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

После того, как этот предел будет установлен на место, вам нужно будет перезагрузить, но это повлияет на каждого пользователя , включая пользователей потоков в системе. Таким образом, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Лимиты групп и подстановочных знаков не применяются к пользователю root по умолчанию. Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800, который будет установите ограничение только на текущий сеанс . Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию

После перезапуска будет использоваться все, что находится в /etc/security/limits.conf. [ ! d16]

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

Важное напоминание:

Вы редко должны когда-либо выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете искать ее действия в файлах Ubuntu и быть дополнительными предостережениями при использовании sudo, поскольку это будет выполняться как пользователь root.

68
ответ дан 25 May 2018 в 23:16
  • 1
    @MarcoCeppi: ваш номер не за горами для типичного пользователя Unity: выход для расчета в настоящее время составляет 404 для моей системы ... – Fabby 12 March 2016 в 06:16
  • 2
    @Fabby Спасибо за обновление! – Marco Ceppi♦ 12 March 2016 в 18:32
  • 3
    Если я, скажем, поместил что-то вроде alias ":(){ :|: & };:"="echo 'No.'" в мой .bashrc - выполнит ли он каждый логин? – UniversallyUniqueID 18 April 2016 в 19:15
  • 4
    Есть ли недостаток в выборе более высокого предела nproc? Похоже, что там не так много места с ограничением или даже удвоением нынешних # процессов, будет ли предел намного выше, даже 10 000 или более, все еще эффективный против вилочной бомбы? О том, сколько бара использует каждый вилок / процесс? Может быть, существует более универсальный лимит RAM? – Xen2050 10 March 2017 в 11:54

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

sudoedit /etc/security/limits.conf

Затем добавьте эту строку в конец этого файла:

* hard nproc nnn

где:

hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки. nproc - максимальное количество процессов на пользователя. nnn - это номер, который вы должны рассчитать для своей системы: ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1

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

После того, как этот предел будет установлен на место, вам нужно будет перезагрузить, но это повлияет на каждого пользователя , включая пользователей потоков в системе. Таким образом, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Лимиты групп и подстановочных знаков не применяются к пользователю root по умолчанию. Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800, который будет установите ограничение только на текущий сеанс . Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию

После перезапуска будет использоваться все, что находится в /etc/security/limits.conf. [ ! d16]

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

Важное напоминание:

Вы редко должны когда-либо выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете искать ее действия в файлах Ubuntu и быть дополнительными предостережениями при использовании sudo, поскольку это будет выполняться как пользователь root.

68
ответ дан 25 July 2018 в 22:34

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

sudoedit /etc/security/limits.conf

Затем добавьте эту строку в конец этого файла:

* hard nproc nnn

где:

hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки. nproc - максимальное количество процессов на пользователя. nnn - это номер, который вы должны рассчитать для своей системы: ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1

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

После того, как этот предел будет установлен на место, вам нужно будет перезагрузить, но это повлияет на каждого пользователя , включая пользователей потоков в системе. Таким образом, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Лимиты групп и подстановочных знаков не применяются к пользователю root по умолчанию. Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800, который будет установите ограничение только на текущий сеанс . Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию

После перезапуска будет использоваться все, что находится в /etc/security/limits.conf. [ ! d16]

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

Важное напоминание:

Вы редко должны когда-либо выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете искать ее действия в файлах Ubuntu и быть дополнительными предостережениями при использовании sudo, поскольку это будет выполняться как пользователь root.

68
ответ дан 31 July 2018 в 10:27

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

sudoedit /etc/security/limits.conf

Затем добавьте эту строку в конец этого файла:

* hard nproc nnn

где:

hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки. nproc - максимальное количество процессов на пользователя. nnn - это номер, который вы должны рассчитать для своей системы: ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1

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

После того, как этот предел будет установлен на место, вам нужно будет перезагрузить, но это повлияет на каждого пользователя , включая пользователей потоков в системе. Таким образом, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Лимиты групп и подстановочных знаков не применяются к пользователю root по умолчанию. Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800, который будет установите ограничение только на текущий сеанс . Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию

После перезапуска будет использоваться все, что находится в /etc/security/limits.conf. [ ! d16]

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

Важное напоминание:

Вы редко должны когда-либо выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете искать ее действия в файлах Ubuntu и быть дополнительными предостережениями при использовании sudo, поскольку это будет выполняться как пользователь root.

68
ответ дан 31 July 2018 в 11:29

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

sudoedit /etc/security/limits.conf

Затем добавьте эту строку в конец этого файла:

* hard nproc nnn

где:

hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки. nproc - максимальное количество процессов на пользователя. nnn - это номер, который вы должны рассчитать для своей системы: ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1

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

После того, как этот предел будет установлен на место, вам нужно будет перезагрузить, но это повлияет на каждого пользователя , включая пользователей потоков в системе. Таким образом, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Лимиты групп и подстановочных знаков не применяются к пользователю root по умолчанию. Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800, который будет установите ограничение только на текущий сеанс . Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию

После перезапуска будет использоваться все, что находится в /etc/security/limits.conf. [ ! d16]

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

Важное напоминание:

Вы редко должны когда-либо выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете искать ее действия в файлах Ubuntu и быть дополнительными предостережениями при использовании sudo, поскольку это будет выполняться как пользователь root.

68
ответ дан 2 August 2018 в 04:00

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

  sudoedit  /etc/security/limits.conf  

Затем добавьте эту строку в конец этого файла:

  * hard nproc nnn  

где:

  • hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки.
  • nproc - максимальное количество процессов на пользователя.
  • nnn - это число, которое вы должны рассчитать для своей системы: ps aux -L | cut --delimiter = "" --fields = 1 | сортировать | uniq --count | sort --numeric-sort | tail -lines = 1

Вышеприведенная команда отобразит все процессы для всех пользователей , включая потоки , суммирует их и перечислит имя пользователя с помощью наибольшее количество процессов. Чтобы убедиться в безопасности, откройте столько приложений, сколько обычно вам нужно, прежде чем запускать указанную выше команду, а затем удвойте этот номер для безопасности.

После того, как этот предел вставлен на место, вам необходимо перезагрузить, но это повлияет на каждого пользователя non-root в системе. Поэтому, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию . Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800 , который поместит ограничение только на текущую сессию , но может быть легко обойден вилкой с помощью sudo привилегий! [ ! d27]

После перезапуска будет использоваться то, что находится в /etc/security/limits.conf .

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

Важное напоминание:

Вы редко должны выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете найти ее действия в Ubuntu Manpages и быть дополнительными предостережениями при использовании sudo , поскольку это будет выполняться как пользователь root. [ ! d30]

68
ответ дан 4 August 2018 в 20:03

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

  sudoedit  /etc/security/limits.conf  

Затем добавьте эту строку в конец этого файла:

  * hard nproc nnn  

где:

  • hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки.
  • nproc - максимальное количество процессов на пользователя.
  • nnn - это число, которое вы должны рассчитать для своей системы: ps aux -L | cut --delimiter = "" --fields = 1 | сортировать | uniq --count | sort --numeric-sort | tail -lines = 1

Вышеприведенная команда отобразит все процессы для всех пользователей , включая потоки , суммирует их и перечислит имя пользователя с помощью наибольшее количество процессов. Чтобы убедиться в безопасности, откройте столько приложений, сколько обычно вам нужно, прежде чем запускать указанную выше команду, а затем удвойте этот номер для безопасности.

После того, как этот предел вставлен на место, вам необходимо перезагрузить, но это повлияет на каждого пользователя non-root в системе. Поэтому, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию . Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800 , который поместит ограничение только на текущую сессию , но может быть легко обойден вилкой с помощью sudo привилегий! [ ! d27]

После перезапуска будет использоваться то, что находится в /etc/security/limits.conf .

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

Важное напоминание:

Вы редко должны выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете найти ее действия в Ubuntu Manpages и быть дополнительными предостережениями при использовании sudo , поскольку это будет выполняться как пользователь root. [ ! d30]

68
ответ дан 6 August 2018 в 04:04

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

  sudoedit  /etc/security/limits.conf  

Затем добавьте эту строку в конец этого файла:

  * hard nproc nnn  

где:

  • hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки.
  • nproc - максимальное количество процессов на пользователя.
  • nnn - это число, которое вы должны рассчитать для своей системы: ps aux -L | cut --delimiter = "" --fields = 1 | сортировать | uniq --count | sort --numeric-sort | tail -lines = 1

Вышеприведенная команда отобразит все процессы для всех пользователей , включая потоки , суммирует их и перечислит имя пользователя с помощью наибольшее количество процессов. Чтобы убедиться в безопасности, откройте столько приложений, сколько обычно вам нужно, прежде чем запускать указанную выше команду, а затем удвойте этот номер для безопасности.

После того, как этот предел вставлен на место, вам необходимо перезагрузить, но это повлияет на каждого пользователя non-root в системе. Поэтому, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию . Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800 , который поместит ограничение только на текущую сессию , но может быть легко обойден вилкой с помощью sudo привилегий! [ ! d27]

После перезапуска будет использоваться то, что находится в /etc/security/limits.conf .

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

Важное напоминание:

Вы редко должны выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете найти ее действия в Ubuntu Manpages и быть дополнительными предостережениями при использовании sudo , поскольку это будет выполняться как пользователь root. [ ! d30]

68
ответ дан 7 August 2018 в 22:04

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

  sudoedit  /etc/security/limits.conf  

Затем добавьте эту строку в конец этого файла:

  * hard nproc nnn  

где:

  • hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки.
  • nproc - максимальное количество процессов на пользователя.
  • nnn - это число, которое вы должны рассчитать для своей системы: ps aux -L | cut --delimiter = "" --fields = 1 | сортировать | uniq --count | sort --numeric-sort | tail -lines = 1

Вышеприведенная команда отобразит все процессы для всех пользователей , включая потоки , суммирует их и перечислит имя пользователя с помощью наибольшее количество процессов. Чтобы убедиться в безопасности, откройте столько приложений, сколько обычно вам нужно, прежде чем запускать указанную выше команду, а затем удвойте этот номер для безопасности.

После того, как этот предел вставлен на место, вам необходимо перезагрузить, но это повлияет на каждого пользователя non-root в системе. Поэтому, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию . Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800 , который поместит ограничение только на текущую сессию , но может быть легко обойден вилкой с помощью sudo привилегий! [ ! d27]

После перезапуска будет использоваться то, что находится в /etc/security/limits.conf .

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

Важное напоминание:

Вы редко должны выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете найти ее действия в Ubuntu Manpages и быть дополнительными предостережениями при использовании sudo , поскольку это будет выполняться как пользователь root. [ ! d30]

68
ответ дан 10 August 2018 в 10:18

Вы можете легко ограничить количество процессов, которые могут быть созданы в Ubuntu и большинстве других дистрибутивов Linux, путем изменения /etc/security/limits.conf

  sudoedit  /etc/security/limits.conf  

Затем добавьте эту строку в конец этого файла:

  * hard nproc nnn  

где:

  • hard устанавливает предел на уровне ядра, так что он не может быть изменен без перезагрузки.
  • nproc - максимальное количество процессов на пользователя.
  • nnn - это число, которое вы должны рассчитать для своей системы: ps aux -L | cut --delimiter = "" --fields = 1 | сортировать | uniq --count | sort --numeric-sort | tail -lines = 1

Вышеприведенная команда отобразит все процессы для всех пользователей , включая потоки , суммирует их и перечислит имя пользователя с помощью наибольшее количество процессов. Чтобы убедиться в безопасности, откройте столько приложений, сколько обычно вам нужно, прежде чем запускать указанную выше команду, а затем удвойте этот номер для безопасности.

После того, как этот предел вставлен на место, вам необходимо перезагрузить, но это повлияет на каждого пользователя non-root в системе. Поэтому, если вилка-бомба выполняется любым пользователем, не являющимся пользователем root, у нее будет этот жесткий предел.

Ограничения группы и подстановочных знаков не применяются к пользователю root по умолчанию . Используйте литеральное имя пользователя root в правилах, если вы хотите применить правило к суперпользователю.

Кроме того, если вы не собираетесь перезапускать в ближайшее время, вы можете использовать sudo ulimit -u 800 , который поместит ограничение только на текущую сессию , но может быть легко обойден вилкой с помощью sudo привилегий! [ ! d27]

После перезапуска будет использоваться то, что находится в /etc/security/limits.conf .

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

Важное напоминание:

Вы редко должны выполнять что-либо в командной строке, если вы не на 98% уверены в том, что его действия. Если вы не можете прочитать команды, которые вы выполняете, не делайте этого. Это касается двойных и нечитаемых фрагментов символов hex / base64, которые могут использоваться для скрытия всех видов гадостей. Если вы не уверены в команде, вы всегда можете найти ее действия в Ubuntu Manpages и быть дополнительными предостережениями при использовании sudo , поскольку это будет выполняться как пользователь root. [ ! d30]

68
ответ дан 13 August 2018 в 16:42
  • 1
    @MarcoCeppi: ваш номер не за горами для типичного пользователя Unity: выход для расчета в настоящее время составляет 404 для моей системы ... – Fabby 12 March 2016 в 06:16
  • 2
    @Fabby Спасибо за обновление! – Marco Ceppi♦ 12 March 2016 в 18:32
  • 3
    Если я, скажем, поставлю что-то вроде alias & quot;: () {: |: & amp; };: & quot; = & quot; echo 'No.' & quot; в моем .bashrc - будет ли он выполнять каждый вход в систему? – UniversallyUniqueID 18 April 2016 в 19:15
  • 4
    Есть ли недостаток в выборе более высокого предела nproc? Похоже, что там не так много места с ограничением или даже удвоением нынешних # процессов, будет ли предел намного выше, даже 10 000 или более, все еще эффективный против вилочной бомбы? О том, сколько бара использует каждый вилок / процесс? Может быть, существует более универсальный лимит RAM? – Xen2050 10 March 2017 в 11:54

Простым способом, который мне нравится, является создание псевдонима, хотя псевдоним «не всегда применяется», проверьте ответ выше.

alias :="echo No."

Теперь

$ :(){ :|: & };:

bash: syntax error near unexpected token `('

0
ответ дан 25 May 2018 в 23:16
  • 1
    Конечно, это общее решение; как это останавливается a(){ a|a & };a? (или любое другое имя функции?) – cat 2 January 2016 в 07:13

простой способ мне нравится, чтобы создать псевдоним, но псевдоним не всегда помогает, проверьте выше ответ.

alias :="echo No."

теперь

$ :(){ :|: & };:

bash: syntax error near unexpected token `('

0
ответ дан 25 July 2018 в 22:34
  • 1
    конечно, это общее решение; как это остановить a(){ a|a & };a? (или любое другое название функции?) – cat 2 January 2016 в 07:13

Простым способом, который мне нравится, является создание псевдонима, хотя псевдоним «не всегда применяется», проверьте ответ выше.

alias :="echo No."

Теперь

$ :(){ :|: & };:

bash: syntax error near unexpected token `('

0
ответ дан 31 July 2018 в 10:27
  • 1
    конечно, это общее решение; как это остановить a(){ a|a & };a? (или любое другое название функции?) – cat 2 January 2016 в 07:13

простой способ мне нравится, чтобы создать псевдоним, но псевдоним не всегда помогает, проверьте выше ответ.

alias :="echo No."

теперь

$ :(){ :|: & };:

bash: syntax error near unexpected token `('

0
ответ дан 31 July 2018 в 11:29
  • 1
    конечно, это общее решение; как это остановить a(){ a|a & };a? (или любое другое название функции?) – cat 2 January 2016 в 07:13

простой способ мне нравится, чтобы создать псевдоним, но псевдоним не всегда помогает, проверьте выше ответ.

alias :="echo No."

теперь

$ :(){ :|: & };:

bash: syntax error near unexpected token `('

0
ответ дан 2 August 2018 в 04:00
  • 1
    Конечно, это общее решение; как это останавливается a(){ a|a & };a? (или любое другое имя функции?) – cat 2 January 2016 в 07:13

Простым способом, который мне нравится, является создание псевдонима, хотя псевдоним «не всегда применяется», проверьте ответ выше.

alias: = "echo No."

Теперь

$: () {: |: & amp; } ;:

bash: синтаксическая ошибка около неожиданного токена `('

0
ответ дан 4 August 2018 в 20:03

Простым способом, который мне нравится, является создание псевдонима, хотя псевдоним «не всегда применяется», проверьте ответ выше.

alias: = "echo No."

Теперь

$: () {: |: & amp; } ;:

bash: синтаксическая ошибка около неожиданного токена `('

0
ответ дан 6 August 2018 в 04:04

Простым способом, который мне нравится, является создание псевдонима, хотя псевдоним «не всегда применяется», проверьте ответ выше.

alias: = "echo No."

Теперь

$: () {: |: & amp; } ;:

bash: синтаксическая ошибка около неожиданного токена `('

0
ответ дан 7 August 2018 в 22:04

Простым способом, который мне нравится, является создание псевдонима, хотя псевдоним «не всегда применяется», проверьте ответ выше.

alias: = "echo No."

Теперь

$: () {: |: & amp; } ;:

bash: синтаксическая ошибка около неожиданного токена `('

0
ответ дан 10 August 2018 в 10:18

Простым способом, который мне нравится, является создание псевдонима, хотя псевдоним «не всегда применяется», проверьте ответ выше.

alias: = "echo No."

Теперь

$: () {: |: & amp; } ;:

bash: синтаксическая ошибка около неожиданного токена `('

0
ответ дан 13 August 2018 в 16:42
  • 1
    Конечно, это общее решение; как это останавливается a () {a | a & amp; } стоит? (или любое другое имя функции?) – cat 2 January 2016 в 07:13

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

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