From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Brennan Vincent <brennan(at)umanwizard(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: `pg_ls_dir` can query some directories, but not others |
Date: | 2019-11-13 23:33:24 |
Message-ID: | e6acb185-ad6e-f2b3-dc21-789e09559d58@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 11/13/19 2:32 PM, Brennan Vincent wrote:
> 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?
Works here(Postgres 11.5, openSuSE Leap 15):
drwxr-xr-x 149 root root 12288 Nov 13 15:24 etc/
drwxr-xr-x 4 root root 4096 Jun 7 2018 home/
production_(postgres)# select count(*) from (select pg_ls_dir('/etc')) a;
count
-------
339
(1 row)
production_(postgres)# select count(*) from (select pg_ls_dir('/home')) a;
count
-------
2
(1 row)
SELinux (or equivalent) in play?
>
> My postgres version is 11.5, running on Arch Linux.
>
>
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Brandon Ragland | 2019-11-14 00:40:59 | ERROR: COPY escape must be a single one-byte character (multi-delimiter appears to work on Postgres 9.0 but does not on Postgres 9.2) |
Previous Message | Brennan Vincent | 2019-11-13 22:32:21 | `pg_ls_dir` can query some directories, but not others |