'sudo повторяют “bla”>>/etc/sysctl.conf' отклоненное разрешение

Похоже на использование OpenVZ или находящегося в Virtuozzo VPS. Если так, вероятно, стоит для добавления "ulimit-s 1024" к/etc/profile и к/etc/init.d /* сценарии запуска. Память OpenVZ и Virtuozzo, считающая память копии на записи количеств, зарезервированную для стека, как на самом деле используется и значения по умолчанию для зарезервированной стековой памяти, довольно высока (8 - 10 МБ в зависимости от Вашего дистрибутива).

16
задан 20 September 2013 в 17:05
4 ответа

Вы не можете использовать sudo , чтобы повлиять на перенаправление вывода; > и >> (и, для полноты, <) выполняются с привилегией вызывающего пользователя, поскольку перенаправление выполняется вызывающей оболочкой, а не вызываемый подпроцесс.

Либо выполните

cp /etc/sysctl.conf /tmp/
echo "net.ipv4.ip_forward = 1" >> /tmp/sysctl.conf
sudo cp /tmp/sysctl.conf /etc/

, либо

sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
46
ответ дан 2 December 2019 в 20:33

Команда sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf интерпретируется как you (nonroot ) запишите результат sudo echo "net.ipv4.ip_forward = 1" в /etc/sysctl.conf.[12107 impressionRun[12108 visibleor

sudo su -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'

, чтобы запустить echo "net. ipv4.ip_forward = 1 ">> /etc/sysctl.conf от имени пользователя root.

3
ответ дан 2 December 2019 в 20:33

sudo запускает только вашу команду, а не перенаправление, как root. Вам нужно будет обернуть все это в команду, в которой все работает от имени пользователя root:

sudo sh -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'
12
ответ дан 2 December 2019 в 20:33

Возможно, вам будет проще использовать эту команду:

echo net.ipv4.ip_forward = 1 | sudo tee -a /etc/sysctl.conf
15
ответ дан 2 December 2019 в 20:33

Теги

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