Я пытаюсь написать программу 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
Включение программы SETUID CPP запустить команду - «Группы» показывают группы реальных пользователей вместо эффективного ⇐ Linux
1740184539
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 () рассматривает «все» как безликая учетная запись? , но результат такой же.
Подробнее здесь: [url]https://stackoverflow.com/questions/79458898/enabling-a-setuid-cpp-program-to-run-a-command-groups-shows-the-realuser-gro[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия