Prepare um script que faça a edição desejada, por exemplo, um script que grave o arquivo correto com o IP estático (o que colocar neste script está fora do escopo desta seção de perguntas e respostas). Vamos chamar esse script /root/set_static_ip
. (1)
Edit /etc/sudoers
(2) (com visudo
é melhor, ele verifica a sanidade, é muito difícil recuperar um sistema com um arquivo sudoers inválido, mesmo impossível a partir do controle remoto (3)) e adicione
user_name_to_authorize ALL=NOPASSWD: /root/set_static_ip
Agora esse usuário pode usar sudo /root/set_static_ip
sem nenhuma senha solicitada e o script será executado com todos os privilégios; nenhum outro comando será permitido.
Se você quiser que o usuário substitua apenas um arquivo pelo que ele quiser, o script pode ser simplesmente (chame-o /root/unsafe-overwrite-interface
)
#! /bin/bash -e
#
cp /tmp/temp-iface.txt /etc/network/interfaces
exit 0
... e você diz ao usuário para editar /tmp/temp-iface.txt
e depois executar sudo /root/unsafe-overwrite-interface
--- habilitando-o em sudoers, conforme especificado acima. Ou você pode adicionar o usuário a uma lista da ACL e conceder permissão de gravação no arquivo específico .
Mas observe que, se você não verificar o conteúdo do arquivo quanto à segurança, ocorrerá um caos , intencional ou não intencional.
Notas de rodapé :
(1) esse script deve ser o mais seguro possível. Verifique as entradas e assim por diante. Será executado com permissões completas.
(2) na instalação moderna do sudo, você pode adicionar um arquivo ao /etc/sudoers.d/
diretório que é melhor - sobreviverá às atualizações.
(3) Normalmente, mantenho um terminal com uma sessão raiz aberta ( sudo -i
) quando modifico o mecanismo sudoers e um backup à mão.
/var/tmp/foo
=/etc/network/interfaces
? Nunca realmente vi o que você está tentando dizer lá, sou muito novo no Linux.