directory without search permission is searchable?

Jun T takimoto-j@kba.biglobe.ne.jp
Wed Feb 26 05:30:00 GMT 2020


It seems 'ls -l dir/file' or 'stat dir/file' succeeds even if
I don't have read/search permission for the 'dir'.

Create a directory and a file in it:

$ mkdir tmpdir
$ ls -ld tmpdir
drwxr-xr-x+ 1 takimoto none 0 Feb 26 12:46 tmpdir
$ touch tmpdir/afile
$ ls -l tmpdir/afile
-rw-r--r-- 1 takimoto 0 none Feb 26 12:46 tmpdir/afile

Remove all permissions from tmpdir:

$ chmod 0000 tmpdir
$ ls -ld tmpdir
d---------+ 1 takimoto none 0 Feb 26 12:46 tmpdir
$ getfacl tmpdir
# file: tmpdir
# owner: takimoto
# group: none
user::---
group::---
other::---
default:user::rwx
default:group::r-x
default:other::r-x

This fails as expected:

$ ls -l tmpdir
ls: cannot open directory 'tmpdir': Permission denied

But the followings succeed (should fail, I believe):

$ ls -l tmpdir/afile
-rw-r--r-- 1 takimoto none 0 Feb 26 12:46 tmpdir/afile
$ stat tmpdir/afile
  File: tmpdir/afile
  Size: 0               Blocks: 0          IO Block: 65536  regular empty file
Device: d05d00abh/3495755947d   Inode: 14636698789089092  Links: 1
Access: (0644/-rw-r--r--)  Uid: (197609/takimoto)   Gid: (197121/  none)
Access: 2020-02-26 12:46:12.478966400 +0900
Modify: 2020-02-26 12:46:12.478966400 +0900
Change: 2020-02-26 12:46:12.464849300 +0900
 Birth: 2020-02-26 12:46:12.464849300 +0900

Does this happen only for me? Should I set some ACL properly?

I removed default ACL from tmpdir but the results are the same.

I confirmed (by a simple C code) that the stat(3p) system call
(or library function) succeeds for 'tmpdir/afile'.



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list