[Решен] QUrlInfo и права на файл/директория
-
Здравейте.
Ползвам QUrlInfo за да изкарам информация за файл от отдалечен сървър (ftp). Срещам проблеми с информацията за правата на директорията или файла. В enum-а PermissionSpec се вижда че максималния сбор на флаговете е 7 (за собственик, група и останалите).
@
QUrlInfo::ReadOwner 00400 The file is readable by the owner of the file.
QUrlInfo::WriteOwner 00200 The file is writable by the owner of the file.
QUrlInfo::ExeOwner 00100 The file is executable by the owner of the file.
QUrlInfo::ReadGroup 00040 The file is readable by the group.
QUrlInfo::WriteGroup 00020 The file is writable by the group.
QUrlInfo::ExeGroup 00010 The file is executable by the group.
QUrlInfo::ReadOther 00004 The file is readable by anyone.
QUrlInfo::WriteOther 00002 The file is writable by anyone.
QUrlInfo::ExeOther 00001 The file is executable by anyone.
@Обаче получавам странни резултати. Директория която иначе е с права 755 ми я показва като 493 а такава която е 777 - 511
Не ми се вярва да добавя стойности за setuid и setgid, те така или иначе не съществуват на въпросните директории.Някой има ли представа как да извлека правилните права и на какво се дължи това разминаване?
-
Здравей,
QUrlInfo би трябвало да ти върне информацията, така както я вижда сървъра(процеса на сървъра). Ако ти гледаш директорията с друг потребител, не би ли трябвало да я показва различно?
-
Ами честно казано, правя ftp клиент за разработка която ще е за "лична" употреба (работя като системен администратор и гледам да си улесня малко работата) и това което правя всъщност е ftp конекция към сървъра. Проблема е че ползвам QFtp който ако не се лъжа вече е deprecated или поне е в процес на отстраняване, но ползвам Qt 4.8 и там все още си работи добре. Така че това което ми връща QUrlInfo е слот свързан с qftp сигнала listInfo. Всичко друго с QFtp си работи ОК. Не би трябвало да е свързано с потребителя, тъй като ако имаш права да листнеш директорията, ще я листнеш и ще видиш цялата необходима информация. Ако нямаш, просто няма да я листнеш. А и се логвам с потребителя собственик на директорията. Ако проверя правата на сървъра през SSH или с друг FTP клиент, всичко си е ОК. Заради това се зачудих дали аз нещо не съм разбрал в това което връща.
-
След малко тестове, намерих достатъчно информация която да ми свърши работа за текущия проект. Това което правя не е елегантен начин за пресмятане на правата, но за мен работи и това ми стига за проекта. Написал съм варианта в "другата тема":http://qt-project.org/forums/viewthread/28906/#129721 която създадох по въпроса в общия форум за десктоп приложения.