Russian Qt Forum

Qt => Общие вопросы => Тема начата: DenKor от Август 25, 2005, 06:49



Название: QFile c произвольными правами доступа
Отправлено: DenKor от Август 25, 2005, 06:49
Каким образом можно открыть файл в Windows из qt с правами заданного пользователя (не текущего)


Название: QFile c произвольными правами доступа
Отправлено: Hellenna от Август 25, 2005, 13:32
сменить индертификатор процесса, открыть файл, сменить назад.
Как это сделать в винде не знаю.


Название: QFile c произвольными правами доступа
Отправлено: DenKor от Август 25, 2005, 15:21
А примерчик на qt можно  :?


Название: QFile c произвольными правами доступа
Отправлено: Hellenna от Август 25, 2005, 21:46
Цитата: "DenKor"
А примерчик на qt можно  :?

для линукса?
пожалуйста:
Код:

//сохраняем значения
int gid=getgid();
int uid= getuid();
setuid(идентификатор_нужного_пользователя);
setgid(идентификатор_нужной_группы);

//выполняем нужные операции с файлом (код из asistant)
QString mgs="message";
QFile f;
f.open( IO_WriteOnly, stderr );
f.writeBlock( msg, qstrlen(msg) );      // write to stderr
f.close();

//возвращаем старые идентификаторы
setuid(uid);
setgid(gid);

в линуксе есть еще понятие эффективного идентификатора пользователя и группы (ставится и получается коммандами set{get}euid{egid}).
в винде должны быть функции аналогичные setuid, но их названий я не знаю (давненько винду вообще в глаза не видела :) )