Включение программы SETUID CPP запустить команду - «Группы» показывают группы реальных пользователей вместо эффективногоC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Включение программы SETUID CPP запустить команду - «Группы» показывают группы реальных пользователей вместо эффективного

Сообщение Anonymous »

Я пытаюсь написать программу CPP, которая будет действовать как «Sudo» для безликого аккаунта. По сути, я хочу, чтобы команда была запускана как безликая учетная запись, а не как пользователь, вызывая команду. Я намерен сделать это, написав программу CPP, которую я буду скомпилировать, поджег ее на безличную учетную запись и установив бит SETUID. Это почти полностью работает, но я не могу добраться до конца, потому что кажется, что существуют религиозные изделия, которые повреждают результаты. Это кодовый блок, который выполняет SetUID: < /p>
uid_t euid, ruid;

ruid = getuid();
euid = geteuid();
seteuid(ruid);

int childPid = fork();
if(childPid == 0){
seteuid(euid);
execvp(command, arguments);
} else {
wait(childPid);
}

< /code>
После составления кода, разыгрывая его и настройку бита SetUID в качестве Facelss, он выглядит следующим образом: < /p>
[user@home]$ ls -ltr ../bin/.sudo
-rwsr-xr-x 1 cadtools vendor_tools 13224 Feb 21 18:23 ../bin/.sudo
[user@home]$
< /code>
Когда я запускаю код в качестве моего имени пользователя, он правильно сообщает «whoami» как безликая учетная запись: < /p>
[user@home]$ ../bin/.sudo /usr/bin/whoami
cadtools
[user@home]$

< /code>
Но результат «групп» неверен. Результатом «групп» является группы имен пользователей, а не безликие аккаунты: < /p>
[user@home]$ ../bin/.sudo /usr/bin/groups
domain users vpn_users linux-admins hw engineering wifi_eng rtm_admins hw_er
[user@home]$ /usr/bin/groups
domain users vpn_users linux-admins hw engineering wifi_eng rtm_admins hw_er
[user@home]$ /usr/bin/groups cadtools
cadtools : domain users vendor_tools engineering hw
[user@home]$

< /code>
Почему вызов execvp () рассматривает «все» как безликая учетная запись? , но результат такой же.

Подробнее здесь: https://stackoverflow.com/questions/794 ... aluser-gro
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»