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 deste Q & amp; A). Vamos chamar esse script /root/set_static_ip
. (1)
Edite /etc/sudoers
(2) (com visudo
é melhor, verifica se há sanidade, é muito difícil recuperar um sistema com um arquivo sudoers inválido, mesmo impossível from remote (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 simplesmente substitua um arquivo com o que 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 diga 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 ACL e dar permissão de gravação no arquivo específico .
Mas observe que, se você não verificar o conteúdo do arquivo por segurança, haverá um intencional ou não intencional.
Notas de rodapé :
(1) este 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 diretório /etc/sudoers.d/
que é melhor --- sobreviverá às atualizações.
(3) Eu normalmente mantenho um terminal com uma sessão raiz aberta ( sudo -i
) quando modifico o mecanismo sudoers, e um backup é útil.