KACL Class

a POSIX ACL encapsulation. More...

Header: #include <KACL>
CMake: find_package(KF6 REQUIRED COMPONENTS KIO)
target_link_libraries(mytarget PRIVATE KF6::KIOCore)

Public Functions

KACL()
KACL(const QString &aclString)
KACL(mode_t basicPermissions)
KACL(const KACL &rhs)
ACLGroupPermissionsList allGroupPermissions() const
ACLUserPermissionsList allUserPermissions() const
QString asString() const
mode_t basePermissions() const
bool isExtended() const
bool isValid() const
unsigned short maskPermissions(bool &exists) const
unsigned short namedGroupPermissions(const QString &name, bool *exists) const
unsigned short namedUserPermissions(const QString &name, bool *exists) const
unsigned short othersPermissions() const
unsigned short ownerPermissions() const
unsigned short owningGroupPermissions() const
bool setACL(const QString &aclStr)
bool setAllGroupPermissions(const ACLGroupPermissionsList &)
bool setAllUserPermissions(const ACLUserPermissionsList &list)
bool setMaskPermissions(unsigned short)
bool setNamedGroupPermissions(const QString &name, unsigned short)
bool setNamedUserPermissions(const QString &name, unsigned short)
bool setOthersPermissions(unsigned short)
bool setOwnerPermissions(unsigned short)
bool setOwningGroupPermissions(unsigned short)

Detailed Description

The KACL class encapsulates a POSIX Access Control List. It follows the little standard that couldn't, 1003.1e/1003.2c, which died in draft status.

Member Function Documentation

KACL::KACL()

Creates an empty KACL. Until a valid acl string is set via setACL, isValid() will return false.

KACL::KACL(const QString &aclString)

Creates a new KACL from aclString. If the string is a valid acl string, isValid() will afterwards return true.

KACL::KACL(mode_t basicPermissions)

Creates a new KACL from the basic permissions passed in basicPermissions. isValid() will return true, afterwards.

KACL::KACL(const KACL &rhs)

Copy ctor

ACLGroupPermissionsList KACL::allGroupPermissions() const

Returns the list of all group permission entries. Each entry consists of a name/permissions pair. This is a QPair, therefore access is provided via the .first and .next members. Returns the list of all group permission entries.

See also setAllGroupPermissions().

ACLUserPermissionsList KACL::allUserPermissions() const

Returns the list of all group permission entries. Each entry consists of a name/permissions pair. This is a QPair, therefore access is provided via the .first and .next members. Returns the list of all group permission entries.

See also setAllUserPermissions().

QString KACL::asString() const

Return a string representation of the ACL. Returns a string version of the ACL in the format compatible with libacl and POSIX 1003.1e. Implementations conforming to that standard should be able to take such strings as input.

mode_t KACL::basePermissions() const

Returns the basic (owner/group/others) part of the ACL as a mode_t

bool KACL::isExtended() const

Return whether the ACL contains extended entries or can be expressed using only basic file permissions.

bool KACL::isValid() const

Returns whether the KACL object represents a valid acl.

unsigned short KACL::maskPermissions(bool &exists) const

Return the entry for the permissions mask if there is one and sets exists to true. If there is no such entry, exists is set to false. Returns the permissions mask entry

See also setMaskPermissions().

unsigned short KACL::namedGroupPermissions(const QString &name, bool *exists) const

Access to the permissions entry for a named group, if such an entry exists. If exists is non-null, the boolean variable it points to is set to true if a matching entry exists and to false otherwise. Returns the permissions for a group with the name in name

See also setNamedGroupPermissions().

unsigned short KACL::namedUserPermissions(const QString &name, bool *exists) const

Access to the permissions entry for a named user, if such an entry exists. If exists is non-null, the boolean variable it points to is set to true if a matching entry exists and to false otherwise. Returns the permissions for a user entry with the name in name

See also setNamedUserPermissions().

unsigned short KACL::othersPermissions() const

Returns the permissions entry for others

See also setOthersPermissions().

unsigned short KACL::ownerPermissions() const

Returns the owner's permissions entry

See also setOwnerPermissions().

unsigned short KACL::owningGroupPermissions() const

Returns the owning group's permissions entry

See also setOwningGroupPermissions().

bool KACL::setACL(const QString &aclStr)

Sets the whole list from a string. If the string in @p aclStr represents a valid ACL, it will be set, otherwise the ACL remains unchanged. Returns whether setting the ACL was successful.

bool KACL::setAllGroupPermissions(const ACLGroupPermissionsList &)

Replace the list of all user permissions with @p list. If one of the entries in the list does not exists, or setting of the ACL entry fails for any reason, the ACL will be left unchanged. Returns success or failure

See also allGroupPermissions().

bool KACL::setAllUserPermissions(const ACLUserPermissionsList &list)

Replace the list of all user permissions with list. If one of the entries in the list does not exists, or setting of the ACL entry fails for any reason, the ACL will be left unchanged. Returns success or failure

See also allUserPermissions().

bool KACL::setMaskPermissions(unsigned short)

Set the permissions mask for the ACL. Permissions set for individual entries will be masked with this, such that their effective permissions are the result of the logical and of their entry and the mask. Returns success or failure

See also maskPermissions().

bool KACL::setNamedGroupPermissions(const QString &name, unsigned short)

Set the permissions for a group with the name name. Will fail if the group doesn't exist, in which case the ACL be unchanged. Returns success or failure.

See also namedGroupPermissions().

bool KACL::setNamedUserPermissions(const QString &name, unsigned short)

Set the permissions for a user with the name name. Will fail if the user doesn't exist, in which case the ACL will be unchanged. Returns success or failure.

See also namedUserPermissions().

bool KACL::setOthersPermissions(unsigned short)

Set the permissions entry for others. Returns success or failure

See also othersPermissions().

bool KACL::setOwnerPermissions(unsigned short)

Set the owner's permissions entry. Returns success or failure

See also ownerPermissions().

bool KACL::setOwningGroupPermissions(unsigned short)

Set the owning group's permissions entry. Returns success or failure

See also owningGroupPermissions().