Execute um binário possuído pela raiz sem sudo

12

Eu tinha uma pergunta em uma entrevista de emprego:

How can you execute (run) the program with the user user1 without sudo privileges and without access to the root account:

$ whoami
user1
$ ls -l ~/binary_program
-rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program
    
por inivanoff1 28.09.2014 / 08:51

2 respostas

17

Desde que você tenha permissão de leitura:

$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary

É claro que isso não concederá automaticamente privilégios escalonados. Você ainda estaria executando esse binário como um usuário comum.

    
por 28.09.2014 / 09:06
19

Você pode usar o linker / loader dinâmico do Linux diretamente para executar < a href="https://en.wikipedia.org/wiki/Executable_and_Linkable_Format"> executáveis ELF para os quais você leu, mas não executou direitos:

$ /lib/ld-linux.so.* /home/user1/binary_program

Quando um executável ELF é executado normalmente, o vinculador dinâmico armazenado na seção .interp do código do programa é usado. Razões para invocar diretamente o linkador dinâmico (fora das entrevistas de emprego) incluem passar as opções de linha de comando para modificar seu comportamento.

Observe que a localização real do vinculador dinâmico pode depender muito do ambiente, por exemplo, no Ubuntu de 64 bits, o vinculador está em /lib64/ld-linux-x86-64.so.2 .

    
por 28.09.2014 / 09:06