Estou tentando escrever para /etc/network/interfaces
um usuário que não tem privilégios de root.
O motivo para querer escrever sobre isso seria permitir ao usuário definir um IP estático, pois estou executando um servidor somente de linha de comando. Em que permissão eu preciso fornecer o usuário etc/sudoers
?
Não quero que o usuário tenha permissões de root completas. Apenas capacidade de editar este arquivo.
permissions
user-management
Keith
fonte
fonte
/var/tmp/foo
=/etc/network/interfaces
? Nunca realmente vi o que você está tentando dizer lá, sou muito novo no Linux.setfacl: /etc/logrotate.conf: Operation not supported
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) (comvisudo
é 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 adicioneAgora 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
)... e você diz ao usuário para editar
/tmp/temp-iface.txt
e depois executarsudo /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.fonte
/etc/network/interfaces
arquivo para o que quer que/root/set_static_ip
seja. A menos que você possa criar um script que solicite ao usuário que insira endereço IP, gateway, etc ... Isso eu não sou bom o suficiente para fazer./etc/sudoers
issovisudo
, não ésudoedit
.