Isso é realmente comum e bastante direto. sudo
permite limitar aplicativos específicos que um usuário pode invocar. Em outras palavras, você não precisa dar a todos raiz ou nada; você pode dar a eles sudo
permissions para executar um comando específico . Isto é exatamente o que você quer, e é uma prática muito comum para coisas como permitir que usuários empurrem repositórios Git via SSH e afins.
Para fazer isso, tudo o que você precisa fazer é adicionar uma linha a /etc/sudoers
que se pareça com
bob ALL=(root) NOPASSWD: /path/to/command/you/trust
(A parte NOPASSWD:
não é necessária, mas é muito comum nesta situação.) Nesse ponto, bob
pode invocar /path/to/command/you/trust
via sudo, mas nada mais.
Dito isso, dar a alguém raiz - o que estamos fazendo aqui - pode não ser exatamente o que você quer. Notavelmente, se houvesse alguma falha em seu roteiro, você arrisca deixar sua caixa enraizar-se. Por esse motivo, em vez disso, você pode preferir criar um usuário especificamente para possuir o arquivo especial, por exemplo, specialuser
, em que chown
o arquivo para eles, e ter o /etc/sudoers
make bob
como usuário especial. Nesse caso, a linha adicionada a sudoers
seria simplesmente
bob ALL=(specialuser) NOPASSWD: /path/to/command/you/trust