Há duas coisas para saber aqui:
-
O bit adesivo , que pode ser usado em arquivos e diretórios, mas não faz o que você quer. De
sticky(8)
: bit pegajoso não tem efeito em arquivos executáveis . -
A sinalização
setuid
, que permite que um programa seja executado com as permissões de seus proprietários. O que parece ser uma restrição no OS X, e aparentemente não está documentado, é que o bit setuid em um executável tem um efeito somente se o executável estiver em um diretório pertencente à raiz (e não aberto para gravação por outros), etc, até o diretório raiz. Caso contrário, ele será ignorado por razões de segurança.
De qualquer forma, você pode modificar o arquivo sudoers de tal forma que não exija uma senha para um comando. Lembre-se de que você tem para usar visudo
para editá-lo. Se você conseguir obter a sintaxe errada ao editar o arquivo, você não poderá mais executar sudo
.
sudo visudo
Em seguida, pressione I e, na parte inferior, insira:
username ALL= NOPASSWD: /path/to/command
Aqui, obviamente, você precisa alterar o username
para o usuário que deve executar o comando sem precisar digitar uma senha. Além disso, mude o caminho para o seu executável. Observe que, neste momento, o executável pode ser de propriedade de root
e ter permissões de execução apenas para root
também.
Pressione Esc , depois escreva :wq
, depois Digite .
Agora, o usuário username
pode executar o comando com sudo /path/to/command
e não precisa digitar uma senha para fazer isso.