Disclaimer: Eu sou muito novato em coisas sysadmin.
Estou tentando configurar o encaminhamento de porta em uma instância do AWS EC2, isso deve ser feito na linha de comando, porque não quero editar nada, ele deve ser automático (faz parte de um processo de compilação )
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Permissão negada
O estranho é que tenho usado (com sucesso) sudo
praticamente todos os comandos que exigiam su
privilégios. Se eu fizer isso sudo su
antes do comando (testando manualmente em uma ssh
sessão), ele funcionará.
Razões por trás disso? Possíveis soluções que não envolvem sudo su
ou edições manuais?
ubuntu
ssh
amazon-ec2
sudo
bevacqua
fonte
fonte
sudo -i
Respostas:
Você não pode usar
sudo
para afetar o redirecionamento de saída;>
e>>
(e, para completar<
) , são efetuados com o privilégio do usuário que chama, porque o redirecionamento é feito pelo shell de chamada, não pelo subprocesso chamado.Ou
ou
fonte
Você pode achar mais simples usar este comando:
fonte
sudo
executa apenas seu comando, não o redirecionamento, como root. Você precisará agrupar tudo em um comando no qual a coisa toda é executada como raiz:fonte
O comando
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
é interpretado como se você (sem raiz) grave o resultadosudo echo "net.ipv4.ip_forward = 1"
em /etc/sysctl.conf.Corre
ou
para executar
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
como root.fonte
-i
: editar arquivo no lugar.$ a
: acrescenta texto à última linhaO uso do
sed
comando evita o aborrecimento de redirecionamentos e pipelines.No seu caso:
sudo sed -i "$ a net.ipv4.ip_forward = 1" /etc/sysctl.conf
fonte