I've just configured access to our Isilon clusters via the file system access API to allow a particular system to read/write files from the Isilon via the API.
What I discovered is odd behaviour regarding ACE inheritance.
The directory structure I am allowing access to has a number of ACEs set on it, to allow the directory structure to be viewed/modified by administrators.
Now, when the API is used by the fairly restricted API user (only has access via API, no other access), inheritance appears to be followed:
$ ls -led test_api
drwxrwx--- + 2 svc_api-access domain users 21 Nov 11 13:22 test_api
OWNER: user:svc_api-access
GROUP: group:domain users
CONTROL:dacl_auto_inherited,sacl_auto_inherited
0: user:svc_api-access allow inherited dir_gen_read,dir_gen_write,dir_gen_execute,std_delete,object_inherit,container_inherit,inherited_ace
1: group:dl_rba_smbroots-fullcontrol allow inherited dir_gen_all,container_inherit,inherited_ace
However, when a file is created in this directory, most* inheritable ACEs are ignored:
$ ls -led test_api/foo
-rwx------ + 1 svc_api-access domain users 15 Nov 11 13:22 test_api/foo
OWNER: user:svc_api-access
GROUP: group:domain users
CONTROL:dacl_auto_inherited,sacl_auto_inherited
0: user:svc_api-access allow file_gen_read,file_gen_write,std_write_dac
1: group:domain users allow std_read_dac,std_synchronize,file_read_attr
2: everyone allow std_read_dac,std_synchronize,file_read_attr
3: user:svc_api-access allow inherited file_gen_read,file_gen_write,file_gen_execute,std_delete,inherited_ace
I say "most" ACEs were ignored, because the ACE for the user "svc_api-access" actually was inherited. However, along with that, a set of ACEs for essentially 'UGO' have been created, and the "dl_rba_smbroots-fullcontrol" ACE has been ignored.
I can't see anything in the "put file" documentation which would change inheritance behaviour, only a very vague mention of the "x-isi-ifsaccesscontrol" option.
Now, you can modify an existing file to apply a set of ACEs, but surely you shouldn't need to write a file, and then (re-)apply the ACEs that said file should have had by inheritance!?
Does anyone have significant experience of the file system access API who could point me in the right direction?
Cheers,
John