бит setuid имеет различное поведение в зависимости от каталога

281
wallek876

Я проверял разрешение setuid, и у меня возникли проблемы с его настройкой.

Допустим, я делаю тесты с двумя пользователями owneruserи otheruser.

Я написал простую программу на c, все, что она делает, это вызывает system()для отображения текущего пользователя.

testid.c:

int main(void) { setresgid(222, 222, 222); // To simplify, this numbers represent just harcoded  setresuid(222, 222, 222); // values for the owneruser id and owneruser group id  system("whoami"); } 

Пользователь owneruserкомпилирует программу в два разных каталога и устанавливает бит setuid, один из которых owneruserпринадлежит, а другой для примера в /tmpкаталог, команды выглядят примерно так:

gcc testid.c -o /tmp/testid gcc testid.c -o /home/owneruser/testid  chmod 4755 /tmp/testid chmod 4755 /home/owneruser/testid 

Теперь, когда otheruserзапускаются программы, /home/owneruser/testidя получаю вывод:

owneruser 

и /tmp/testidя получаю вывод:

otheruser 

Что вызывает это другое поведение?

1
Можете ли вы опубликовать вывод `mount | grep / tmp`? user2313067 6 лет назад 0
@ user2313067 Теперь я вижу, что вывод: `tmpfs on / tmp type tmpfs (rw, nosuid, nodev)` wallek876 6 лет назад 0

0 ответов на вопрос

Похожие вопросы