-SUID- Não é possível executar um arquivo "-rwsr-xr-x" como root

0

Estou usando o Ubuntu 16.10. Acabei de fazer esta pergunta no Stack Overflow, mas fui aconselhado a perguntar neste fórum.

Eu estava acompanhando um livro, fazendo algo assim:

#include <stdio.h>

int main() {
    printf("Real UID:\t%d\n", getuid());
    printf("Effective UID:\t%d\n", geteuid());
}

E para executar este arquivo como sudo sem usar o comando sudo, depois de compilar com o gcc, alterei o proprietário e o grupo para root.

$ gcc -o test test.c
$ sudo chown root:root ./test
$ chmod u+s ./test
$ ls -l
-rwsr-xr-x 1 root root 8512 Mar 9 test

Agora, isso é o que obtive quando executei o arquivo. Meu UID é de 1.000.

$ ./test
Real UID:        1000
Effective UID:   1000

O livro que eu estava lendo dizia que o resultado deveria ser assim:

$ ./test
Real UID:        1000
Effective UID:   0

O UID do root é 0, certo? Isso significa que estou executando um arquivo -rwsr-xr-x , de propriedade do root, com meu próprio privilégio de usuário? Eu não entendo.

    
por coffeeFlow 09.03.2017 / 16:33

1 resposta

0

Você provavelmente está colocando o arquivo em uma partição montada com nosuid . Você pode digitar mount para ver se esse é o caso. Em caso afirmativo, mova o arquivo para uma partição diferente ou remonte a partição com -o suid (observe que fazer o último pode ter implicações de segurança).

    
por Joseph Sible 09.03.2017 / 20:04