Correcting my statement in the previous commit:
There is defined correspondence between ACL and st_mode in Linux man 5 acl. It is complicated and libisofs will have to ensure integrity of ACL manipulations and st_mode manipulations. (It will not check integrity when loading ACLs and st_mode from filesystems.)
This commit is contained in:
parent
6ad6d3c219
commit
6659ec1566
@ -288,6 +288,31 @@ const char *iso_node_get_name(const IsoNode *node)
|
|||||||
void iso_node_set_permissions(IsoNode *node, mode_t mode)
|
void iso_node_set_permissions(IsoNode *node, mode_t mode)
|
||||||
{
|
{
|
||||||
node->mode = (node->mode & S_IFMT) | (mode & ~S_IFMT);
|
node->mode = (node->mode & S_IFMT) | (mode & ~S_IFMT);
|
||||||
|
|
||||||
|
#ifdef Libisofs_with_aaiP
|
||||||
|
|
||||||
|
/* Linux man 5 acl says:
|
||||||
|
The permissions defined by ACLs are a superset of the permissions speci-
|
||||||
|
fied by the file permission bits. The permissions defined for the file
|
||||||
|
owner correspond to the permissions of the ACL_USER_OBJ entry. The per-
|
||||||
|
missions defined for the file group correspond to the permissions of the
|
||||||
|
ACL_GROUP_OBJ entry, if the ACL has no ACL_MASK entry. If the ACL has an
|
||||||
|
ACL_MASK entry, then the permissions defined for the file group corre-
|
||||||
|
spond to the permissions of the ACL_MASK entry. The permissions defined
|
||||||
|
for the other class correspond to the permissions of the ACL_OTHER_OBJ
|
||||||
|
entry.
|
||||||
|
|
||||||
|
Modification of the file permission bits results in the modification of
|
||||||
|
the permissions in the associated ACL entries. Modification of the per-
|
||||||
|
missions in the ACL entries results in the modification of the file per-
|
||||||
|
mission bits.
|
||||||
|
|
||||||
|
*/
|
||||||
|
/* >>> if the node has ACL info : */
|
||||||
|
/* >>> update ACL */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user