сценарий sudo в моей папке $ HOME / bin

Изменение диапазона временных портов может вызвать проблемы, если вы используете Mesos .

Mesos объявляет ресурсы хоста различным Mesos Framework , которые затем могут использовать объявленные ресурсы. Объявленные ресурсы включают ЦП, память, порты и т. Д. Набор портов по умолчанию, который объявляет Mesos, составляет 31000-32000 . Это позволяет избежать конфликта с диапазоном временных портов Linux по умолчанию 32768-61000 .

Примечательно, что Mesos не знает, используется ли порт каким-либо другим процессом, он просто отслеживает назначение портов объектам, которые он управляет ( Mesos Tasks и Mesos Executors ]). Таким образом, если вы измените диапазон эфемерных портов так, чтобы он перекрывался с диапазоном портов Mesos, вполне вероятно, что какой-то произвольный процесс будет использовать эфемерный порт, который на самом деле является одним из этих «портов Mesos». Это может привести к тому, что Mesos будет предлагать этот порт для Mesos Framework , который столкнется с кажущимися случайными сбоями его Mesos Executors и / или Mesos Tasks , поскольку они будут невозможно подключиться к этому порту.

Если вам нужно увеличить диапазон эфемерных портов, а также запустить Mesos, то вы можете изменить объявленные порты с помощью подчиненного мезо (скоро будет переименован в mesos-agent ) параметр конфигурации - ресурсы .

1
11.04.2018, 14:14
2 ответа

sudoустанавливает ограниченный PATH, поэтому он не найдет ваш локальный скрипт. Вы можете настроить его так, чтобы он не env_resetдля данного пользователя и так далее, но, пожалуй, самое простое — написать свой собственный -строковый mysudoскрипт, который выполняет:

#!/bin/sh
exec sudo -s PATH="$PATH" exec "$@"

, а затем произнесите mysudo somecommand...вместо sudo somecommand.... Он попросит sudo запустить оболочку, вернуть PATHк тому, что было, а затем запустить вашу команду, найденную по этому исходному пути.

2
27.01.2020, 23:43

PATH— это переменная среды в операционных системах, таких как Linux, Windows, которые имеют определенный набор каталогов, в которых находятся исполняемые программы. Согласно вашему вопросу, ваш исполняемый скрипт находится в каталоге $HOME/bin. Поэтому, если вы хотите запустить скрипт, которого нет в PATH, вам нужно указать полный структурный путь к файлу, чтобы ОС могла получить доступ к файлу для его выполнения. Например,

sudo $HOME/bin/<nameofthescript>

Если вы не хотите все время указывать полный путь к файлу, вы можете поместить этот путь к файлу в среду veritable, используя приведенную ниже команду. Учитывая, что вы сохранили свой скрипт в каталоге $HOME/bin.

PATH=$PATH:$HOME/bin

Приведенная выше команда добавит каталог bin в путь среды, после чего вы сможете использовать <nameofscript>из любой точки системы. Кроме того, это будет работать только до тех пор, пока ваш bash не будет запущен, если вы попробуете то же самое в новом терминале, ваш PATH изменится на значение по умолчанию. Чтобы сделать его постоянным, вам нужно добавить строку ниже в файл $HOME/.profileили $HOME/.bashrc.

export PATH=$PATH:$HOME/bin

Чтобы позволить только пользователю root выполнять <nameofscript>из любого места,вы можете поместить в каталог /sbinили /usr/sbin.

1
27.01.2020, 23:43

Теги

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