Como executar um programa como root sem “sudo”?

9

Eu tenho um determinado programa binário no OS X que só pode ser executado como root.

Estou cansado de prefixar sudo cada vez que invoco e escrevo a senha, e gostaria que ela fosse executada automaticamente como root quando eu a invocasse regularmente, sem pedir uma senha.

O proprietário do programa é root e seu grupo é wheel.

Eu tentei chmod ug+s para definir o ID do usuário e o ID do grupo após a execução para root / wheel, mas quando executo o programa sem sudo ele ainda reclama que ele pode ser executado apenas com o sudo ou como root.

    
por UrEl 31.05.2011 / 11:35

7 respostas

1

Você tem certeza de que o programa que está tentando executar é, na verdade, um binário, e não um script de shell. A maioria dos shells ignora os scripts suid porque eles são muito, muito difíceis de fazer com segurança. Uma maneira fácil de verificar é usar o comando file no programa.

    
por 31.05.2011 / 15:24
14

Uma meia solução para o seu problema:

no arquivo sudoers, adicione o seguinte:

username ALL= NOPASSWD: /path/to/command

Em seguida, na linha de comando, você pode digitar:

sudo command

e ele executará o comando sem solicitar sua senha. Este comando será executado como root.

Observação: você precisará substituir o nome de usuário pelo seu nome de usuário real.

    
por 10.03.2012 / 21:14
4

Se você realmente não puder invocá-lo como um daemon por qualquer motivo (essa questão seria relevante nessa instância) , este método pode ser cortado em conjunto, mas é muito sujo e não é seguro de todo.

O conceito é lançá-lo com um AppleScript. Você primeiro precisará saber como invocar o processo a partir da linha de comando (o que, se você já estiver usando o sudo, significa que você deve estar pronto). Você iniciará esse processo usando o comando do shell script e, em vez de usar o sudo, você gravará suas credenciais no AppleScript:

do shell script "/path/to/your/executable/here" user name "me" password "mypassword" with administrator privileges

Eu reitero a parte sobre isso ser inseguro: ISTO SIGNIFICA QUE SEUS CREDORES DE ADMINISTRAÇÃO SERÃO ARMAZENADOS EM TEXTO SIMPLES. Se for possível, você deve encontrar uma maneira de fazer isso como um LaunchDaemon.

    
por 31.05.2011 / 22:37
2

ON OSX suponha que o programa que você possui esteja localizado em / usr / local / bin / YourProgramName ... Para resolver esse problema, o comando a seguir, Para alterar a ID do usuário / grupo para hierarquias de arquivos enraizada nos arquivos, em vez de apenas os próprios arquivos.

sudo chown -R $(whoami) /usr/local/bin/

... então no Terminal invoque seu programName, $ YourProgramName

    
por 26.10.2012 / 10:13
0

Você pode fazer

sudo tcsh

que irá colocar você em um shell de root.

    
por 31.05.2011 / 11:43
0

parece que o próprio programa verifica se está sendo executado com ID = 0

    
por 31.05.2011 / 14:55
-1

Você pode sudo chown YOUR-USERNAME-HERE BINARY-NAME-HERE .

Ainda assim, concordo totalmente com o comentário do dmckee.

    
por 31.05.2011 / 15:26