Спасибо, заглядывая в них ... RT
понять, о чем я спрашиваю, важно различать несколько вариантов использования SUID в Unix.
У меня есть проект, который использует исполняемый файл в пользовательском PATH, который принадлежит проекту и в котором установлен бит SUID. Таким образом, когда он запускается, он запускается в контексте владельца файла, а не вызывающего пользователя. Таким образом, он имеет доступ к вещам, которых нет у пользователя, и, таким образом, эти вещи защищены от пользователя обычными средствами защиты файловой системы. Это работает достаточно хорошо. Планируется перевести проект на архитектуру клиент-сервер, но это займет некоторое время. В то же время, как я могу повторить этот тип поведения в системах Windows?
Обратите внимание, что исполняемые файлы проекта не вызывают вызов библиотеки SETUID, хотя, честно говоря, это было бы отличной возможностью добавить, на мой взгляд, с учетом того, что делает проект. Проекту не нужны системные привилегии root. Его первая проблема безопасности заключается в том, что ему нужно защищать свои собственные файлы от пользователя (которым является любой пользователь, кроме владельца файла), и было бы очень хорошо, если бы он имел возможность переключаться в «пользовательский контекст» для доступа к файлу. Система, как если бы это был вызывающий пользователь. (Таким образом, было бы легче определить, что нормально для проекта, а что нет.)
Проект написан на комбинации C и Java - программа на C с набором SUID вызывает код Java ...
Я заинтересован в том, чтобы знать все такие механизмы, и особенно сосредоточен на тех, которые:
Подходит для C и Java;Легко реализовать для не-Windows программистов, и;Требовать минимального кодирования, уникального для Windows.Если некоторые решения лучше, пожалуйста, поделитесь своими мыслями о том, что вы знаете в этом отношении.
ПРИМЕЧАНИЯ:
LogonUser: требуется пароль в виде обычного текста. Как это может быть ответом?RunAs: Требуется ввести пароль на PROMPT! ... как с LogonUser только хуже; Я не понимаю, как это ответ.