From: | Brennan Vincent <brennan(at)umanwizard(dot)com> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | `pg_ls_dir` can query some directories, but not others |
Date: | 2019-11-13 22:32:21 |
Message-ID: | 65AAD7CD-27DA-480E-A691-E530464278F2@umanwizard.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Copying here a question I asked on StackOverflow:
https://stackoverflow.com/questions/58846076
=======================================
On my system, `/home` and `/etc` have exactly the same permissions:
```
$ ls -ld /home /etc
drwxr-xr-x 67 root root 4096 Nov 13 15:59 /etc
drwxr-xr-x 3 root root 4096 Oct 18 13:45 /home
```
However, Postgres can read one, but not the other:
```
test=# select count(*) from (select pg_ls_dir('/etc')) a;
count
-------
149
(1 row)
test=# select count(*) from (select pg_ls_dir('/home')) a;
ERROR: could not open directory "/home": Permission denied
```
Even though the user the DB is running as can, in fact, run `ls /home`:
```
$ sudo -u postgres ls /home > /dev/null && echo "ls succeeded"
ls succeeded
```
What is going on?
My postgres version is 11.5, running on Arch Linux.
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2019-11-13 23:33:24 | Re: `pg_ls_dir` can query some directories, but not others |
Previous Message | Tom Lane | 2019-11-13 19:16:30 | Re: Last autovacuum time - what is it? |