LINUX.ORG.RU

Setuid

 ,


0

1

Всем привет. Пытаюсь поменять uid в своем приложении (на коре), но в ответ получаю ошибку -1. Детали:

Есть приложение на .net core, у самого файла приложения выставлен бит setuid, в приложении пробую использовать системный вызов (который реализуется с помощью библиотеки Mono.Posix.NETStandard) следующим образом:

Mono.Unix.Native.Syscall.setuid(501)
Мне возвращается -1, но без деталей всяческих.

Задача простая: у меня запускается приложение от user1, а из приложения я хочу получить доступ к файлу, который имеет только пользователь user2.

p.s. Тега net core не нашел, зато net framework есть. (:



Последнее исправление: Zermond (всего исправлений: 2)

p.s. Тега net core не нашел, зато net framework есть. (:

Поставь тег microsoft, сразу индусьи подстилки набегут.

entefeed ☆☆☆
()
Ответ на: комментарий от Zermond

Я думал времена холивара закончились.

Враг поставил капкан и затаился.

entefeed ☆☆☆
()

man setuid:

setuid() sets the effective user ID of the calling process. If the calling process is privileged (more precisely: if the process has the CAP_SETUID capability in its user namespace), the real UID and saved set-user-ID are also set.

Если у твоего процесса нету CAP_SETUID, то хрена лысого ядро тебе даст uid поменять.

dexpl ★★★★★
()

Колиужполезвнативныйинтерфейсчитайман. Ошибка вернётся в errno вестимо.

pon4ik ★★★★★
()

Потому что setuid флаг не работает на сяких скриптах или байткоде, а только на нативных бинарях.

anonymous
()
Ответ на: комментарий от anonymous

Для чего тогда такая возможность у либы Mono.Posix? Может быть попробовать нативным приложением с флагом setuid вызывать dotnet, а им уже мое приложение? Таким образом сработает?

Zermond
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.