Quero adicionar uma entrada aos meus suoders para permitir que um usuário execute um comando com exatamente um argumento não opcional.
# tail -1 /etc/sudoers
ALL ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user:
Posso fazer isso usando o sudoers sytnax? Ou preciso criar um script auxiliar?
[a-z]*
já é o argumento que quero. Portanto, é um argumento variável. (Eu uso / bin / echo apenas para teste.) #Respostas:
Que eu saiba, você não pode passar argumentos que não sejam de comando para o sudo se esse argumento variar.
Você pode especificar algo como isto:
Isso permitiria ao usuário finalizar alguns arquivos, mas não outros arquivos.
Se você precisar passar uma variável, recomendo um script de wrapper.
Aqui está um exemplo de um wrapper rsync:
https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo
Se você pesquisar no google por invólucros sudo, poderá encontrar muitos outros exemplos.
Certifique-se de codificar todos os caminhos e executar verificações de integridade na entrada se o usuário não puder ser confiável.
fonte