Наличие частей sudo и non-sudo в псевдониме — почему это не работает с >>?

На моей справочной странице iptables-extensionsне упоминается, что здесь разрешены регулярные выражения, поэтому я думаю, что это не так. Вам придется создать отдельные правила для вашего выбора. (И в качестве примечания: вам не нужно повторять часть -p tcp --dport 80в вашей цепочке RATELIMITING:, которая всегда верна в вашей установке.)

0
11.02.2020, 10:31
1 ответ

В то время как команда sudo в вашем первом псевдониме предоставляет привилегии root для cat /tmp/hosts, перенаправление >> /etc/hostsбудет опробовано с вашими привилегиями пользователя.
Поскольку они обычно недостаточно высоки, вы получаете ошибку «Отказано в доступе».

Чтобы это сработало,вы можете запустить команду в такой подоболочке:

alias hosts-get="scp user@host.com:/etc/hosts /tmp/ && sudo sh -c \"cat /tmp/hosts >> /etc/hosts\""  

или просто сделайте это так же, как во втором подходе.
Здесь вы перенаправляете вывод «непривилегированной» команды cat в привилегированную команду «tee», которая затем имеет право добавлять информацию в /etc/hosts.

3
28.04.2021, 23:23

Теги

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