[Решен] 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 която създадох по въпроса в общия форум за десктоп приложения.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.