[GH-ISSUE #80] Operation not permitted on subdirectory #45

Closed
opened 2026-03-04 01:41:29 +03:00 by kerem · 9 comments
Owner

Originally created by @ad-m on GitHub (Nov 11, 2014).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/80

Hello,

I am would like connect to S3-like API e24cloud, but I am unable to list any subdirectories or read any files. I am able only list root directory

I ran s3fs:

$ sudo s3fs -o allow_other -f -d rownosc-debug aa -ourl='e24files.com/'
    set_moutpoint_attribute(3379): PROC(uid=0, gid=0) - MountPoint(uid=1000, gid=1000, mode=40775)
s3fs_init(2650): init
s3fs_check_service(2968): check services.
    CheckBucket(2366): check a bucket.
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/
    RequestPerform(1587): HTTP response code 200
s3fs_getattr(716): [path=/.Trash]
    HeadRequest(2006): [tpath=/.Trash]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash
    RequestPerform(1587): HTTP response code 404
    RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT
    HeadRequest(2006): [tpath=/.Trash/]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash/
    RequestPerform(1587): HTTP response code 404
    RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT
    HeadRequest(2006): [tpath=/.Trash_$folder$]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash_%24folder%24
    RequestPerform(1587): HTTP response code 404
    RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT
  list_bucket(2268): [path=/.Trash]
    ListBucketRequest(2410): [tpath=/.Trash]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=.Trash/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
s3fs_getattr(716): [path=/.Trash-1000]
    HeadRequest(2006): [tpath=/.Trash-1000]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash-1000
    RequestPerform(1587): HTTP response code 404
    RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT
    HeadRequest(2006): [tpath=/.Trash-1000/]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash-1000/
    RequestPerform(1587): HTTP response code 404
    RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT
    HeadRequest(2006): [tpath=/.Trash-1000_$folder$]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash-1000_%24folder%24
    RequestPerform(1587): HTTP response code 404
    RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT
  list_bucket(2268): [path=/.Trash-1000]
    ListBucketRequest(2410): [tpath=/.Trash-1000]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=.Trash-1000/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
s3fs_getattr(716): [path=/]
s3fs_getattr(716): [path=/]
s3fs_getattr(716): [path=/]
s3fs_access(2709): [path=/][mask=X_OK ]
s3fs_opendir(2077): [path=/][flags=100352]
s3fs_readdir(2225): [path=/]
  list_bucket(2268): [path=/]
    ListBucketRequest(2410): [tpath=/]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000
    RequestPerform(1587): HTTP response code 200
  readdir_multi_head(2146): [path=/][list=0]
    Request(3305): [count=7]
    AddStat(247): add stat cache entry[path=/button.html]
MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/css/)
MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/fonts/)
MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/img/)
MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/js/)
MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/scss/)
MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/less/)
    GetStat(170): stat cache hit [path=/button.html][time=1415675872][hit count=0]
    readdir_multi_head(2208): Could not find /css file in stat cache.
    readdir_multi_head(2208): Could not find /fonts file in stat cache.
    readdir_multi_head(2208): Could not find /img file in stat cache.
    readdir_multi_head(2208): Could not find /js file in stat cache.
    readdir_multi_head(2208): Could not find /less file in stat cache.
    readdir_multi_head(2208): Could not find /scss file in stat cache.
s3fs_getattr(716): [path=/]
s3fs_getattr(716): [path=/button.html]
    GetStat(170): stat cache hit [path=/button.html][time=1415675872][hit count=1]
s3fs_getattr(716): [path=/css]
    HeadRequest(2006): [tpath=/css]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/css
    RequestPerform(1587): HTTP response code 200
  list_bucket(2268): [path=/css]
    ListBucketRequest(2410): [tpath=/css]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=css/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
    AddStat(247): add stat cache entry[path=/css/]
    GetStat(170): stat cache hit [path=/css/][time=1415675872][hit count=0]
s3fs_getattr(716): [path=/fonts]
    HeadRequest(2006): [tpath=/fonts]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/fonts
    RequestPerform(1587): HTTP response code 200
  list_bucket(2268): [path=/fonts]
    ListBucketRequest(2410): [tpath=/fonts]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=fonts/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
    AddStat(247): add stat cache entry[path=/fonts/]
    GetStat(170): stat cache hit [path=/fonts/][time=1415675872][hit count=0]
s3fs_getattr(716): [path=/img]
    HeadRequest(2006): [tpath=/img]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/img
    RequestPerform(1587): HTTP response code 200
  list_bucket(2268): [path=/img]
    ListBucketRequest(2410): [tpath=/img]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=img/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    AddStat(247): add stat cache entry[path=/img/]
    GetStat(170): stat cache hit [path=/img/][time=1415675872][hit count=0]
s3fs_getattr(716): [path=/js]
    HeadRequest(2006): [tpath=/js]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/js
    RequestPerform(1587): HTTP response code 200
  list_bucket(2268): [path=/js]
    ListBucketRequest(2410): [tpath=/js]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=js/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
    AddStat(247): add stat cache entry[path=/js/]
    GetStat(170): stat cache hit [path=/js/][time=1415675872][hit count=0]
s3fs_getattr(716): [path=/less]
    HeadRequest(2006): [tpath=/less]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/less
    RequestPerform(1587): HTTP response code 200
  list_bucket(2268): [path=/less]
    ListBucketRequest(2410): [tpath=/less]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=less/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty.
    AddStat(247): add stat cache entry[path=/less/]
    GetStat(170): stat cache hit [path=/less/][time=1415675872][hit count=0]
s3fs_getattr(716): [path=/scss]
    HeadRequest(2006): [tpath=/scss]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/scss
    RequestPerform(1587): HTTP response code 200
  list_bucket(2268): [path=/scss]
    ListBucketRequest(2410): [tpath=/scss]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=scss/&max-keys=1000
    RequestPerform(1587): HTTP response code 200
    AddStat(247): add stat cache entry[path=/scss/]
    GetStat(170): stat cache hit [path=/scss/][time=1415675873][hit count=0]
s3fs_opendir(2077): [path=/][flags=100352]
s3fs_readdir(2225): [path=/]
  list_bucket(2268): [path=/]
    ListBucketRequest(2410): [tpath=/]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000
    RequestPerform(1587): HTTP response code 200
  readdir_multi_head(2146): [path=/][list=0]
    GetStat(170): stat cache hit [path=/button.html][time=1415675872][hit count=2]
    GetStat(170): stat cache hit [path=/css/][time=1415675872][hit count=1]
    GetStat(170): stat cache hit [path=/fonts/][time=1415675872][hit count=1]
    GetStat(170): stat cache hit [path=/img/][time=1415675872][hit count=1]
    GetStat(170): stat cache hit [path=/js/][time=1415675872][hit count=1]
    GetStat(170): stat cache hit [path=/less/][time=1415675872][hit count=1]
    GetStat(170): stat cache hit [path=/scss/][time=1415675873][hit count=1]
    Request(3305): [count=0]
    GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=3]
    GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=2]
    GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=2]
    GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=2]
    GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=2]
    GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=2]
    GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=2]
s3fs_opendir(2077): [path=/][flags=100352]
s3fs_readdir(2225): [path=/]
  list_bucket(2268): [path=/]
    ListBucketRequest(2410): [tpath=/]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000
    RequestPerform(1587): HTTP response code 200
  readdir_multi_head(2146): [path=/][list=0]
    GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=4]
    GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=3]
    GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=3]
    GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=3]
    GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=3]
    GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=3]
    GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=3]
    Request(3305): [count=0]
    GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=5]
    GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=4]
    GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=4]
    GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=4]
    GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=4]
    GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=4]
    GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=4]
s3fs_opendir(2077): [path=/][flags=100352]
s3fs_readdir(2225): [path=/]
  list_bucket(2268): [path=/]
    ListBucketRequest(2410): [tpath=/]
    RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000
    RequestPerform(1587): HTTP response code 200
  readdir_multi_head(2146): [path=/][list=0]
    GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=6]
    GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=5]
    GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=5]
    GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=5]
    GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=5]
    GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=5]
    GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=5]
    Request(3305): [count=0]
    GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=7]
    GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=6]
    GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=6]
    GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=6]
    GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=6]
    GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=6]
    GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=6]
s3fs_getattr(716): [path=/css]
    GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=7]
s3fs_getattr(716): [path=/]
s3fs_access(2709): [path=/css][mask=X_OK ]
    GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=8]
s3fs_access(2709): [path=/css][mask=X_OK ]
    GetStat(170): stat cache hit [path=/css/][time=1415675879][hit count=9]

And do some activity:

/tmp/s3fs-fuse-master$ ls -lah aa/
razem 12K
drwxrwxrwx 1 root root    0 sty  1  1970 .
drwxrwxr-x 7 adas adas 4,0K lis 11 03:47 ..
---------- 1 root root 3,6K lis 10 18:29 button.html
d--------- 1 root root    0 lis 10 18:30 css
d--------- 1 root root    0 lis 10 18:30 fonts
d--------- 1 root root    0 lis 10 18:30 img
d--------- 1 root root    0 lis 10 17:24 js
d--------- 1 root root    0 lis 10 18:30 less
d--------- 1 root root    0 lis 10 18:31 scss
/tmp/s3fs-fuse-master$ ls -lah aa/css
ls: nie można otworzyć katalogu aa/css: Operacja niedozwolona``` 
```Operacja niedozwolona``` mean ```Operation not permitted``` in Polish.

How can I debug that?
Originally created by @ad-m on GitHub (Nov 11, 2014). Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/80 Hello, I am would like connect to S3-like API e24cloud, but I am unable to list any subdirectories or read any files. I am able only list root directory I ran s3fs: ``` $ sudo s3fs -o allow_other -f -d rownosc-debug aa -ourl='e24files.com/' set_moutpoint_attribute(3379): PROC(uid=0, gid=0) - MountPoint(uid=1000, gid=1000, mode=40775) s3fs_init(2650): init s3fs_check_service(2968): check services. CheckBucket(2366): check a bucket. RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/ RequestPerform(1587): HTTP response code 200 s3fs_getattr(716): [path=/.Trash] HeadRequest(2006): [tpath=/.Trash] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash RequestPerform(1587): HTTP response code 404 RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT HeadRequest(2006): [tpath=/.Trash/] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash/ RequestPerform(1587): HTTP response code 404 RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT HeadRequest(2006): [tpath=/.Trash_$folder$] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash_%24folder%24 RequestPerform(1587): HTTP response code 404 RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT list_bucket(2268): [path=/.Trash] ListBucketRequest(2410): [tpath=/.Trash] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=.Trash/&max-keys=1000 RequestPerform(1587): HTTP response code 200 append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. s3fs_getattr(716): [path=/.Trash-1000] HeadRequest(2006): [tpath=/.Trash-1000] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash-1000 RequestPerform(1587): HTTP response code 404 RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT HeadRequest(2006): [tpath=/.Trash-1000/] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash-1000/ RequestPerform(1587): HTTP response code 404 RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT HeadRequest(2006): [tpath=/.Trash-1000_$folder$] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/.Trash-1000_%24folder%24 RequestPerform(1587): HTTP response code 404 RequestPerform(1611): HTTP response code 404 was returned, returning ENOENT list_bucket(2268): [path=/.Trash-1000] ListBucketRequest(2410): [tpath=/.Trash-1000] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=.Trash-1000/&max-keys=1000 RequestPerform(1587): HTTP response code 200 append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. s3fs_getattr(716): [path=/] s3fs_getattr(716): [path=/] s3fs_getattr(716): [path=/] s3fs_access(2709): [path=/][mask=X_OK ] s3fs_opendir(2077): [path=/][flags=100352] s3fs_readdir(2225): [path=/] list_bucket(2268): [path=/] ListBucketRequest(2410): [tpath=/] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000 RequestPerform(1587): HTTP response code 200 readdir_multi_head(2146): [path=/][list=0] Request(3305): [count=7] AddStat(247): add stat cache entry[path=/button.html] MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/css/) MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/fonts/) MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/img/) MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/js/) MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/scss/) MultiRead(3247): failed a request(404: rownosc-debug.e24files.com/less/) GetStat(170): stat cache hit [path=/button.html][time=1415675872][hit count=0] readdir_multi_head(2208): Could not find /css file in stat cache. readdir_multi_head(2208): Could not find /fonts file in stat cache. readdir_multi_head(2208): Could not find /img file in stat cache. readdir_multi_head(2208): Could not find /js file in stat cache. readdir_multi_head(2208): Could not find /less file in stat cache. readdir_multi_head(2208): Could not find /scss file in stat cache. s3fs_getattr(716): [path=/] s3fs_getattr(716): [path=/button.html] GetStat(170): stat cache hit [path=/button.html][time=1415675872][hit count=1] s3fs_getattr(716): [path=/css] HeadRequest(2006): [tpath=/css] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/css RequestPerform(1587): HTTP response code 200 list_bucket(2268): [path=/css] ListBucketRequest(2410): [tpath=/css] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=css/&max-keys=1000 RequestPerform(1587): HTTP response code 200 append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. AddStat(247): add stat cache entry[path=/css/] GetStat(170): stat cache hit [path=/css/][time=1415675872][hit count=0] s3fs_getattr(716): [path=/fonts] HeadRequest(2006): [tpath=/fonts] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/fonts RequestPerform(1587): HTTP response code 200 list_bucket(2268): [path=/fonts] ListBucketRequest(2410): [tpath=/fonts] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=fonts/&max-keys=1000 RequestPerform(1587): HTTP response code 200 append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. AddStat(247): add stat cache entry[path=/fonts/] GetStat(170): stat cache hit [path=/fonts/][time=1415675872][hit count=0] s3fs_getattr(716): [path=/img] HeadRequest(2006): [tpath=/img] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/img RequestPerform(1587): HTTP response code 200 list_bucket(2268): [path=/img] ListBucketRequest(2410): [tpath=/img] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=img/&max-keys=1000 RequestPerform(1587): HTTP response code 200 AddStat(247): add stat cache entry[path=/img/] GetStat(170): stat cache hit [path=/img/][time=1415675872][hit count=0] s3fs_getattr(716): [path=/js] HeadRequest(2006): [tpath=/js] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/js RequestPerform(1587): HTTP response code 200 list_bucket(2268): [path=/js] ListBucketRequest(2410): [tpath=/js] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=js/&max-keys=1000 RequestPerform(1587): HTTP response code 200 append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. AddStat(247): add stat cache entry[path=/js/] GetStat(170): stat cache hit [path=/js/][time=1415675872][hit count=0] s3fs_getattr(716): [path=/less] HeadRequest(2006): [tpath=/less] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/less RequestPerform(1587): HTTP response code 200 list_bucket(2268): [path=/less] ListBucketRequest(2410): [tpath=/less] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=less/&max-keys=1000 RequestPerform(1587): HTTP response code 200 append_objects_from_xml_ex(2354): contents_xp->nodesetval is empty. AddStat(247): add stat cache entry[path=/less/] GetStat(170): stat cache hit [path=/less/][time=1415675872][hit count=0] s3fs_getattr(716): [path=/scss] HeadRequest(2006): [tpath=/scss] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com/scss RequestPerform(1587): HTTP response code 200 list_bucket(2268): [path=/scss] ListBucketRequest(2410): [tpath=/scss] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=scss/&max-keys=1000 RequestPerform(1587): HTTP response code 200 AddStat(247): add stat cache entry[path=/scss/] GetStat(170): stat cache hit [path=/scss/][time=1415675873][hit count=0] s3fs_opendir(2077): [path=/][flags=100352] s3fs_readdir(2225): [path=/] list_bucket(2268): [path=/] ListBucketRequest(2410): [tpath=/] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000 RequestPerform(1587): HTTP response code 200 readdir_multi_head(2146): [path=/][list=0] GetStat(170): stat cache hit [path=/button.html][time=1415675872][hit count=2] GetStat(170): stat cache hit [path=/css/][time=1415675872][hit count=1] GetStat(170): stat cache hit [path=/fonts/][time=1415675872][hit count=1] GetStat(170): stat cache hit [path=/img/][time=1415675872][hit count=1] GetStat(170): stat cache hit [path=/js/][time=1415675872][hit count=1] GetStat(170): stat cache hit [path=/less/][time=1415675872][hit count=1] GetStat(170): stat cache hit [path=/scss/][time=1415675873][hit count=1] Request(3305): [count=0] GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=3] GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=2] GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=2] GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=2] GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=2] GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=2] GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=2] s3fs_opendir(2077): [path=/][flags=100352] s3fs_readdir(2225): [path=/] list_bucket(2268): [path=/] ListBucketRequest(2410): [tpath=/] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000 RequestPerform(1587): HTTP response code 200 readdir_multi_head(2146): [path=/][list=0] GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=4] GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=3] GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=3] GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=3] GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=3] GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=3] GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=3] Request(3305): [count=0] GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=5] GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=4] GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=4] GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=4] GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=4] GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=4] GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=4] s3fs_opendir(2077): [path=/][flags=100352] s3fs_readdir(2225): [path=/] list_bucket(2268): [path=/] ListBucketRequest(2410): [tpath=/] RequestPerform(1571): connecting to URL rownosc-debug.e24files.com?delimiter=/&prefix=&max-keys=1000 RequestPerform(1587): HTTP response code 200 readdir_multi_head(2146): [path=/][list=0] GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=6] GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=5] GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=5] GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=5] GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=5] GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=5] GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=5] Request(3305): [count=0] GetStat(170): stat cache hit [path=/button.html][time=1415675878][hit count=7] GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=6] GetStat(170): stat cache hit [path=/fonts/][time=1415675878][hit count=6] GetStat(170): stat cache hit [path=/img/][time=1415675878][hit count=6] GetStat(170): stat cache hit [path=/js/][time=1415675878][hit count=6] GetStat(170): stat cache hit [path=/less/][time=1415675878][hit count=6] GetStat(170): stat cache hit [path=/scss/][time=1415675878][hit count=6] s3fs_getattr(716): [path=/css] GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=7] s3fs_getattr(716): [path=/] s3fs_access(2709): [path=/css][mask=X_OK ] GetStat(170): stat cache hit [path=/css/][time=1415675878][hit count=8] s3fs_access(2709): [path=/css][mask=X_OK ] GetStat(170): stat cache hit [path=/css/][time=1415675879][hit count=9] ``` And do some activity: `````` /tmp/s3fs-fuse-master$ ls -lah aa/ razem 12K drwxrwxrwx 1 root root 0 sty 1 1970 . drwxrwxr-x 7 adas adas 4,0K lis 11 03:47 .. ---------- 1 root root 3,6K lis 10 18:29 button.html d--------- 1 root root 0 lis 10 18:30 css d--------- 1 root root 0 lis 10 18:30 fonts d--------- 1 root root 0 lis 10 18:30 img d--------- 1 root root 0 lis 10 17:24 js d--------- 1 root root 0 lis 10 18:30 less d--------- 1 root root 0 lis 10 18:31 scss /tmp/s3fs-fuse-master$ ls -lah aa/css ls: nie można otworzyć katalogu aa/css: Operacja niedozwolona``` ```Operacja niedozwolona``` mean ```Operation not permitted``` in Polish. How can I debug that? ``````
kerem closed this issue 2026-03-04 01:41:30 +03:00
Author
Owner

@ggtakec commented on GitHub (Nov 16, 2014):

s3fs uses some http headers which are x-amz-meta-uid/x-amz-meta-gid/x-amz-meta-mode/x-amz-meta-mtime to get file/directory object attributes.
Your S3 objects do not have these header, so s3fs displays attributes as 0000.

Then I propose that you use the umask option, it gives certain permissions to all of the files and directory.
If you can, you do touching(or other action) to the objects through s3fs, the objects will have those http hader after that.

<!-- gh-comment-id:63222342 --> @ggtakec commented on GitHub (Nov 16, 2014): s3fs uses some http headers which are x-amz-meta-uid/x-amz-meta-gid/x-amz-meta-mode/x-amz-meta-mtime to get file/directory object attributes. Your S3 objects do not have these header, so s3fs displays attributes as 0000. Then I propose that you use the umask option, it gives certain permissions to all of the files and directory. If you can, you do touching(or other action) to the objects through s3fs, the objects will have those http hader after that.
Author
Owner

@mattzuba commented on GitHub (Nov 20, 2014):

So is it a fair assumption that trying to mount an existing bucket with lots of files and has never been used with s3fs before would need to have chmod and chown run on the entire bucket once mounted before it could really be used?

<!-- gh-comment-id:63851157 --> @mattzuba commented on GitHub (Nov 20, 2014): So is it a fair assumption that trying to mount an existing bucket with lots of files and has never been used with s3fs before would need to have chmod and chown run on the entire bucket once mounted before it could really be used?
Author
Owner

@ad-m commented on GitHub (Feb 3, 2015):

I connected to e24cloud and everything seems looks to work. I created new empty bucket and moved data into it instead connecting to old bucket.

<!-- gh-comment-id:72753195 --> @ad-m commented on GitHub (Feb 3, 2015): I connected to e24cloud and everything seems looks to work. I created new empty bucket and moved data into it instead connecting to old bucket.
Author
Owner

@ggtakec commented on GitHub (Mar 4, 2015):

@mattzuba Sorry for replying too late.

As long as the directory(file) does not have an attribute(headers x-amz-mode etc) which can be s3fs know, s3fs must deal with attributes of the directory(file) as 000.
I think this is important to prevent that would allow unauthorized access by using the s3fs.

So, you can be avoided by using the umask option as an exception or set these headers to the existing directory(file).

The tool that can set headers handled through the s3fs to an existing directory is located test/mergedir.sh.
This tool helps to change attributes(to add headers) to directory object.
Please check and try to use it.

Thanks in advance for your assistance.

<!-- gh-comment-id:77092127 --> @ggtakec commented on GitHub (Mar 4, 2015): @mattzuba Sorry for replying too late. As long as the directory(file) does not have an attribute(headers x-amz-mode etc) which can be s3fs know, s3fs must deal with attributes of the directory(file) as 000. I think this is important to prevent that would allow unauthorized access by using the s3fs. So, you can be avoided by using the umask option as an exception or set these headers to the existing directory(file). The tool that can set headers handled through the s3fs to an existing directory is located test/mergedir.sh. This tool helps to change attributes(to add headers) to directory object. Please check and try to use it. Thanks in advance for your assistance.
Author
Owner

@et304383 commented on GitHub (Dec 11, 2015):

Can you provide detailed instructions how to get around this issue? What does one have to provide to the s3fs mount call to ensure existing directories can be navigated with s3fs?

I have a client that needs to do this very soon (mount existing S3 bucket) so we need a solution as soon as possible. Thanks in advance.

<!-- gh-comment-id:163984268 --> @et304383 commented on GitHub (Dec 11, 2015): Can you provide detailed instructions how to get around this issue? What does one have to provide to the s3fs mount call to ensure existing directories can be navigated with s3fs? I have a client that needs to do this very soon (mount existing S3 bucket) so we need a solution as soon as possible. Thanks in advance.
Author
Owner

@ggtakec commented on GitHub (Dec 20, 2015):

@eric-tucker
s3fs is only been started, it can not grant(write) the appropriate attributes to each objects.

s3fs manipulates the attributes of a target directory(or file), then new attribute(HTTP headers) by the operation will have been granted.
If there is no corresponding object in the directory, it will be the object corresponding to the directory is created.

The correct workaround on using s3fs, after mounting by s3fs, you will detect the file(or directory) of permission 000, you must update the correct attributes.
You will need to sequentially do this task from the mount point.

Now, s3fs does not support to update the file attributes automatically.
If s3fs supports it, there will be many challenges including traffic/performance/access control/etc.

Regards,

<!-- gh-comment-id:166076358 --> @ggtakec commented on GitHub (Dec 20, 2015): @eric-tucker s3fs is only been started, it can not grant(write) the appropriate attributes to each objects. s3fs manipulates the attributes of a target directory(or file), then new attribute(HTTP headers) by the operation will have been granted. If there is no corresponding object in the directory, it will be the object corresponding to the directory is created. The correct workaround on using s3fs, after mounting by s3fs, you will detect the file(or directory) of permission 000, you must update the correct attributes. You will need to sequentially do this task from the mount point. Now, s3fs does not support to update the file attributes automatically. If s3fs supports it, there will be many challenges including traffic/performance/access control/etc. Regards,
Author
Owner

@et304383 commented on GitHub (Dec 20, 2015):

So basically treat it as a local file system where everything is 000 and set the mode ourself to 755 or something similar?

<!-- gh-comment-id:166115078 --> @et304383 commented on GitHub (Dec 20, 2015): So basically treat it as a local file system where everything is 000 and set the mode ourself to 755 or something similar?
Author
Owner

@ggtakec commented on GitHub (Dec 20, 2015):

In case you can not update, s3fs can use the value of the umask options and give permission to the directories(or files) which do not have permission.
Because those directories(files) do not have the UID and GID, you should specify uid and gid options.
These options will work effectively if the object does not have a default attributes(uid/gid/mode).

And for updating directories permission, there is a way to update and refer to the test/mergedir.sh.

Regards,

<!-- gh-comment-id:166135291 --> @ggtakec commented on GitHub (Dec 20, 2015): In case you can not update, s3fs can use the value of the umask options and give permission to the directories(or files) which do not have permission. Because those directories(files) do not have the UID and GID, you should specify uid and gid options. These options will work effectively if the object does not have a default attributes(uid/gid/mode). And for updating directories permission, there is a way to update and refer to the test/mergedir.sh. Regards,
Author
Owner

@ggtakec commented on GitHub (Jan 17, 2016):

I added FAQ(https://github.com/s3fs-fuse/s3fs-fuse/wiki/FAQ) about no permission for objects.

Regards,

<!-- gh-comment-id:172298670 --> @ggtakec commented on GitHub (Jan 17, 2016): I added FAQ(https://github.com/s3fs-fuse/s3fs-fuse/wiki/FAQ) about no permission for objects. Regards,
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#45
No description provided.