It's in Check_PermissionRights():

    if (CallingRoutine & CHK_FETCH) {
                /* must have read access, or be owner and have insert access */
                if (!(rights & PRSFS_READ)
                    && !(OWNSp(client, targetptr) && (rights & PRSFS_INSERT)))
                    return (EACCES);

...

    } else {                    /* a store operation */
        if ((rights & PRSFS_INSERT) && OWNSp(client, targetptr)
            && (CallingRoutine != CHK_STOREACL)
            && (targetptr->disk.type == vFile)) {
            /* bypass protection checks on first store after a create
             * for the creator; also prevent chowns during this time
             * unless you are a system administrator */
          /******  InStatus->Owner && UnixModeBits better be SET!! */

I haven't read the code but the comment implies that only the first store
will succeed (and we know that comments always exactly reflect the code)
_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to