Além de sudo
, o único outro método que conheço é usar o setuid. este é um mecanismo embutido nos Unixes, onde você pode definir um bit em um programa em disco, de modo que, sempre que alguém o execute, o executável seja executado como o proprietário dos arquivos e não o usuário tentando executá-lo.
Mas esse recurso normalmente não funciona com scripts ou programas que exigem um shebang ( #!/bin/...
) na parte superior deles. Se um arquivo tiver este bit ativado, ele aparecerá assim no sistema de arquivos:
-rws------ 1 saml saml 3354099 Oct 28 16:07 someapp
Você pode definir um programa com este bit ativado assim:
$ chmod u+s someapp
Mas, mesmo quando esse bit está habilitado, muitas vezes ele pode ser ignorado e deixar os usuários malucos, que não entendem que é por design. Muitas vezes, por motivos de segurança, não permitir scripts ou programas de shell que usam o shebang para serem executados dessa maneira.
As páginas man ( credentials
& capabilities
) abrangem algumas delas.
Então, em geral, a melhor opção, mesmo que você não queira ouvir isso, é usar sudo
.