Хочу установить SUID на бинарник, который сделает exec в bash, чтобы иметь шелл под другим пользователем, но шелл пускается с правами запустившего, а не владельца. То есть, нет доступа, например, к каталогам, файлам и т.д. пользователя 1000. Сам баш экзекается, но при попытке прочесть файл, говорит
bash-4.3$ cat n
cat: n: Отказано в доступе
Исходник бинарника ниже.
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
int main () {
char *args [] = {"/bin/bash", (char *)NULL};
setuid((uid_t)1000);
setgid(1000);
execvp ("/bin/bash", args);
return 0;
}
Что я делаю не так? Заранее спасибо.